blob: abbb5bd566d6dd5a6a674f32ddb0bf689dd511b2 [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},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530693};
694
695/* Track ASM playback & capture sessions of DAI
696 * Track LSM listen sessions
697 */
698static struct msm_pcm_routing_fdai_data
699 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
700 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530701 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
702 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530703 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530704 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
705 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530706 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530707 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
708 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530709 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530710 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
711 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530712 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530715 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530718 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530721 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530724 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530725 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
726 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530727 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530730 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530733 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530734 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
735 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530736 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530737 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
738 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530739 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530740 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
741 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530742 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530743 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
744 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530745 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530746 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
747 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530748 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530749 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
750 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530751 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530752 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
753 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530754 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530755 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
756 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530757 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530758 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
759 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700760 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530763 /* MULTIMEDIA26 */
764 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
765 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
766 /* MULTIMEDIA27 */
767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530769 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530770 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
771 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530772 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530773 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
774 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +0530775 /* MULTIMEDIA30 */
776 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
777 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530778 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530779 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
780 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530781 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530782 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
783 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530784 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530785 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
786 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530787 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530788 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
789 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530790 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530791 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
792 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530793 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530794 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
795 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530796 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530797 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
798 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530799 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530800 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
801 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530802 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530803 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
804 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530805 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530806 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
807 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530808 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530809 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
810 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530811 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530812 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
813 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530814 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530815 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
816 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530817 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530818 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
819 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530820 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530821 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
822 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530823 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530824 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
825 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530826 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530827 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
828 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530829 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530830 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
831 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530832};
833
834static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
835 [MSM_BACKEND_DAI_MAX];
836static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
837static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
838static struct msm_pcm_stream_app_type_cfg
839 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
840
841static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
842
Florian Pfister522073c2018-09-26 15:39:15 +0200843/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530844void msm_pcm_routing_get_bedai_info(int be_idx,
845 struct msm_pcm_routing_bdai_data *be_dai)
846{
847 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
848 memcpy(be_dai, &msm_bedais[be_idx],
849 sizeof(struct msm_pcm_routing_bdai_data));
850}
851
Florian Pfister522073c2018-09-26 15:39:15 +0200852/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530853void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
854 struct msm_pcm_routing_fdai_data *fe_dai)
855{
856 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
857 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
858 sizeof(struct msm_pcm_routing_fdai_data));
859}
860
861void msm_pcm_routing_acquire_lock(void)
862{
863 mutex_lock(&routing_lock);
864}
865
866void msm_pcm_routing_release_lock(void)
867{
868 mutex_unlock(&routing_lock);
869}
870
871static int msm_pcm_routing_get_app_type_idx(int app_type)
872{
873 int idx;
874
875 pr_debug("%s: app_type: %d\n", __func__, app_type);
876 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
877 if (app_type_cfg[idx].app_type == app_type)
878 return idx;
879 }
880 pr_info("%s: App type not available, fallback to default\n", __func__);
881 return 0;
882}
883
884static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
885{
886 int idx;
887
888 pr_debug("%s: app_type: %d\n", __func__, app_type);
889 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
890 if (lsm_app_type_cfg[idx].app_type == app_type)
891 return idx;
892 }
893 pr_debug("%s: App type not available, fallback to default\n", __func__);
894 return 0;
895}
896
Surendar Karkae7507512018-07-20 15:46:54 +0530897static int get_port_id(int port_id)
898{
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +0530899 int ret = port_id;
900
901 if (port_id == AFE_LOOPBACK_TX) {
902 /*
903 * Return afe_loopback_tx_port_id if set. Else return
904 * msm_ec_ref_port_id to maintain backward compatibility.
905 */
906 if (afe_loopback_tx_port_id != -1)
907 ret = afe_loopback_tx_port_id;
908 else
909 ret = msm_ec_ref_port_id;
910 }
911
912 return ret;
Surendar Karkae7507512018-07-20 15:46:54 +0530913}
914
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530915static bool is_mm_lsm_fe_id(int fe_id)
916{
917 bool rc = true;
918
919 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
920 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
921 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
922 rc = false;
923 }
924 return rc;
925}
926
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700927/*
928 * msm_pcm_routing_send_chmix_cfg:
929 * send the channel mixer command to mix the input channels
930 * into output channels.
931 *
932 * @fe_id: front end id
933 * @ip_channel_cnt: input channel count
934 * @op_channel_cnt: output channel count
935 * @ch_wght_coeff: channel weight co-efficients for channel mixing
936 * @session_type: indicates session is of type TX or RX
937 * @stream_type: indicates either Audio or Listen stream type
938 */
939int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
940 int op_channel_cnt, int *ch_wght_coeff,
941 int session_type, int stream_type)
942{
943
944 int rc = 0, idx = 0;
945 int be_index = 0, port_id;
946 unsigned int session_id = 0;
947
948 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
949 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
950 stream_type);
951 if (!is_mm_lsm_fe_id(fe_id)) {
952 /* bad ID assigned in machine driver */
953 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
954 return -EINVAL;
955 }
956
957 if (ch_wght_coeff == NULL) {
958 pr_err("%s: Null channel weightage coefficients passed\n",
959 __func__);
960 return -EINVAL;
961 }
962
963 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
964 port_id = msm_bedais[be_index].port_id;
965 if (!msm_bedais[be_index].active ||
966 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
967 continue;
968
969 session_id = fe_dai_map[fe_id][session_type].strm_id;
970
971 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
972 unsigned long copp =
973 session_copp_map[fe_id][session_type][be_index];
974 if (!test_bit(idx, &copp))
975 continue;
976 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
977 session_id, ip_channel_cnt,
978 op_channel_cnt, ch_wght_coeff,
979 session_type, stream_type);
980 if (rc < 0)
981 pr_err("%s: err setting channel mix config\n",
982 __func__);
983 }
984 }
985
986 return 0;
987}
988EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
989
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530990/**
991 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
992 * setting before use case start.
993 *
994 * @fe_id: frontend idx
995 * @type: stream direction type
996 * @params: parameters of channel mixer setting
997 *
998 * Return 0 for success
999 */
1000int msm_pcm_routing_set_channel_mixer_cfg(
1001 int fe_id, int type,
1002 struct msm_pcm_channel_mixer *params)
1003{
1004 int i, j = 0;
1005
1006 channel_mixer_v2[fe_id][type].enable = params->enable;
1007 channel_mixer_v2[fe_id][type].rule = params->rule;
1008 channel_mixer_v2[fe_id][type].input_channel =
1009 params->input_channel;
1010 channel_mixer_v2[fe_id][type].output_channel =
1011 params->output_channel;
1012 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
1013
1014 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1015 channel_mixer_v2[fe_id][type].in_ch_map[i] =
1016 params->in_ch_map[i];
1017 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1018 channel_mixer_v2[fe_id][type].out_ch_map[i] =
1019 params->out_ch_map[i];
1020
1021 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1022 for (j = 0; j < ADM_MAX_CHANNELS; j++)
1023 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
1024 params->channel_weight[i][j];
1025
1026 channel_mixer_v2[fe_id][type].override_in_ch_map =
1027 params->override_in_ch_map;
1028 channel_mixer_v2[fe_id][type].override_out_ch_map =
1029 params->override_out_ch_map;
1030
1031 return 0;
1032}
1033EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
1034
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301035int msm_pcm_routing_reg_stream_app_type_cfg(
1036 int fedai_id, int session_type, int be_id,
1037 struct msm_pcm_stream_app_type_cfg *cfg_data)
1038{
1039 int ret = 0;
1040
1041 if (cfg_data == NULL) {
1042 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
1043 ret = -EINVAL;
1044 goto done;
1045 }
1046
1047 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1048 __func__, fedai_id, session_type, be_id,
1049 cfg_data->app_type, cfg_data->acdb_dev_id,
1050 cfg_data->sample_rate);
1051
1052 if (!is_mm_lsm_fe_id(fedai_id)) {
1053 pr_err("%s: Invalid machine driver ID %d\n",
1054 __func__, fedai_id);
1055 ret = -EINVAL;
1056 goto done;
1057 }
1058 if (session_type != SESSION_TYPE_RX &&
1059 session_type != SESSION_TYPE_TX) {
1060 pr_err("%s: Invalid session type %d\n",
1061 __func__, session_type);
1062 ret = -EINVAL;
1063 goto done;
1064 }
1065 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1066 pr_err("%s: Received out of bounds be_id %d\n",
1067 __func__, be_id);
1068 ret = -EINVAL;
1069 goto done;
1070 }
1071
1072 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1073
1074 /*
1075 * Store the BE ID of the configuration information set as the latest so
1076 * the get mixer control knows what to return.
1077 */
1078 last_be_id_configured[fedai_id][session_type] = be_id;
1079
1080done:
1081 return ret;
1082}
1083EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1084
1085/**
1086 * msm_pcm_routing_get_stream_app_type_cfg
1087 *
1088 * Receives fedai_id, session_type, be_id, and populates app_type,
1089 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1090 * -EINVAL and does not alter passed values.
1091 *
1092 * fedai_id - Passed value, front end ID for which app type config is wanted
1093 * session_type - Passed value, session type for which app type config
1094 * is wanted
1095 * be_id - Returned value, back end device id the app type config data is for
1096 * cfg_data - Returned value, configuration data used by app type config
1097 */
1098int msm_pcm_routing_get_stream_app_type_cfg(
1099 int fedai_id, int session_type, int *bedai_id,
1100 struct msm_pcm_stream_app_type_cfg *cfg_data)
1101{
1102 int be_id;
1103 int ret = 0;
1104
1105 if (bedai_id == NULL) {
1106 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1107 ret = -EINVAL;
1108 goto done;
1109 } else if (cfg_data == NULL) {
1110 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1111 ret = -EINVAL;
1112 goto done;
1113 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1114 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1115 ret = -EINVAL;
1116 goto done;
1117 } else if (session_type != SESSION_TYPE_RX &&
1118 session_type != SESSION_TYPE_TX) {
1119 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1120 ret = -EINVAL;
1121 goto done;
1122 }
1123
1124 be_id = last_be_id_configured[fedai_id][session_type];
1125 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1126 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1127 ret = -EINVAL;
1128 goto done;
1129 }
1130
1131 *bedai_id = be_id;
1132 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1133 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1134 __func__, fedai_id, session_type, *bedai_id,
1135 cfg_data->app_type, cfg_data->acdb_dev_id,
1136 cfg_data->sample_rate);
1137done:
1138 return ret;
1139}
1140EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1141
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301142static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1143 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301144{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301145 struct list_head *ptr, *next;
1146 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301147 pr_debug("%s\n", __func__);
1148
1149 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301150 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301151
1152 cal_block = list_entry(ptr,
1153 struct cal_block_data, list);
1154
Vikram Panduranga770b8382017-09-27 12:17:36 -07001155 if (cal_utils_is_cal_stale(cal_block))
1156 continue;
1157
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301158 if (((struct audio_cal_info_adm_top *)cal_block
1159 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301160 return cal_block;
1161 }
1162 }
1163 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1164 return NULL;
1165}
1166
1167static struct cal_block_data *msm_routing_find_topology(int path,
1168 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301169 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001170 int cal_index,
1171 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301172{
1173 struct list_head *ptr, *next;
1174 struct cal_block_data *cal_block = NULL;
1175 struct audio_cal_info_adm_top *cal_info;
1176
1177 pr_debug("%s\n", __func__);
1178
1179 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301180 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301181
1182 cal_block = list_entry(ptr,
1183 struct cal_block_data, list);
1184
Vikram Panduranga770b8382017-09-27 12:17:36 -07001185 if (cal_utils_is_cal_stale(cal_block))
1186 continue;
1187
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301188 cal_info = (struct audio_cal_info_adm_top *)
1189 cal_block->cal_info;
1190 if ((cal_info->path == path) &&
1191 (cal_info->app_type == app_type) &&
1192 (cal_info->acdb_id == acdb_id)) {
1193 return cal_block;
1194 }
1195 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001196 pr_debug("%s: Can't find topology for path %d, app %d, "
1197 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1198 exact ? "fail" : "defaulting to search by path");
1199 return exact ? NULL : msm_routing_find_topology_by_path(path,
1200 cal_index);
1201}
1202
1203static int msm_routing_find_topology_on_index(int session_type, int app_type,
1204 int acdb_dev_id, int idx,
1205 bool exact)
1206{
1207 int topology = -EINVAL;
1208 struct cal_block_data *cal_block = NULL;
1209
1210 mutex_lock(&cal_data[idx]->lock);
1211 cal_block = msm_routing_find_topology(session_type, app_type,
1212 acdb_dev_id, idx, exact);
1213 if (cal_block != NULL) {
1214 topology = ((struct audio_cal_info_adm_top *)
1215 cal_block->cal_info)->topology;
1216 }
1217 mutex_unlock(&cal_data[idx]->lock);
1218 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301219}
1220
Vikram Panduranga770b8382017-09-27 12:17:36 -07001221/*
1222 * Retrieving cal_block will mark cal_block as stale.
1223 * Hence it cannot be reused or resent unless the flag
1224 * is reset.
1225 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301226static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1227 int be_id)
1228{
1229 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301230 int app_type = 0, acdb_dev_id = 0;
1231
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301232 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1233 __func__, fedai_id, session_type, be_id);
1234
1235 if (cal_data == NULL)
1236 goto done;
1237
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301238 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1239 acdb_dev_id =
1240 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1241
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001242 pr_debug("%s: Check for exact LSM topology\n", __func__);
1243 topology = msm_routing_find_topology_on_index(session_type,
1244 app_type,
1245 acdb_dev_id,
1246 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1247 true /*exact*/);
1248 if (topology < 0) {
1249 pr_debug("%s: Check for compatible topology\n", __func__);
1250 topology = msm_routing_find_topology_on_index(session_type,
1251 app_type,
1252 acdb_dev_id,
1253 ADM_TOPOLOGY_CAL_TYPE_IDX,
1254 false /*exact*/);
1255 if (topology < 0)
1256 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301257 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301258done:
1259 pr_debug("%s: Using topology %d\n", __func__, topology);
1260 return topology;
1261}
1262
1263static uint8_t is_be_dai_extproc(int be_dai)
1264{
1265 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1266 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1267 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1268 return 1;
1269 else
1270 return 0;
1271}
1272
1273static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1274 int path_type, int perf_mode,
1275 uint32_t passthr_mode)
1276{
1277 int i, port_type, j, num_copps = 0;
1278 struct route_payload payload;
1279
1280 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1281 path_type == ADM_PATH_COMPRESSED_RX) ?
1282 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1283
1284 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1285 if (!is_be_dai_extproc(i) &&
1286 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1287 (msm_bedais[i].active) &&
1288 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301289 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301290 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1291 unsigned long copp =
1292 session_copp_map[fedai_id][sess_type][i];
1293 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301294 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301295 payload.copp_idx[num_copps] = j;
1296 payload.app_type[num_copps] =
1297 fe_dai_app_type_cfg
1298 [fedai_id][sess_type][i]
1299 .app_type;
1300 payload.acdb_dev_id[num_copps] =
1301 fe_dai_app_type_cfg
1302 [fedai_id][sess_type][i]
1303 .acdb_dev_id;
1304 payload.sample_rate[num_copps] =
1305 fe_dai_app_type_cfg
1306 [fedai_id][sess_type][i]
1307 .sample_rate;
1308 num_copps++;
1309 }
1310 }
1311 }
1312 }
1313
1314 if (num_copps) {
1315 payload.num_copps = num_copps;
1316 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1317 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1318 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1319 }
1320}
1321
1322void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1323 int stream_type)
1324{
1325 int i, session_type, path_type, port_type;
1326 u32 mode = 0;
1327
1328 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1329 /* bad ID assigned in machine driver */
1330 pr_err("%s: bad MM ID\n", __func__);
1331 return;
1332 }
1333
1334 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1335 session_type = SESSION_TYPE_RX;
1336 path_type = ADM_PATH_PLAYBACK;
1337 port_type = MSM_AFE_PORT_TYPE_RX;
1338 } else {
1339 session_type = SESSION_TYPE_TX;
1340 path_type = ADM_PATH_LIVE_REC;
1341 port_type = MSM_AFE_PORT_TYPE_TX;
1342 }
1343
1344 mutex_lock(&routing_lock);
1345
1346 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1347 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1348 if (!is_be_dai_extproc(i) &&
1349 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1350 (msm_bedais[i].active) &&
1351 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1352 mode = afe_get_port_type(msm_bedais[i].port_id);
1353 adm_connect_afe_port(mode, dspst_id,
1354 msm_bedais[i].port_id);
1355 break;
1356 }
1357 }
1358 mutex_unlock(&routing_lock);
1359}
1360
1361static bool route_check_fe_id_adm_support(int fe_id)
1362{
1363 bool rc = true;
1364
1365 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1366 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1367 /* fe id is listen while port is set to afe */
1368 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1369 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1370 __func__, fe_id, lsm_port_index);
1371 rc = false;
1372 }
1373 }
1374
1375 return rc;
1376}
1377
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001378/*
1379 * msm_pcm_routing_get_pp_ch_cnt:
1380 * Read the processed channel count
1381 *
1382 * @fe_id: Front end ID
1383 * @session_type: Inidicates RX or TX session type
1384 */
1385int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1386{
1387 struct msm_pcm_stream_app_type_cfg cfg_data;
1388 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301389 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001390
1391 memset(&cfg_data, 0, sizeof(cfg_data));
1392
1393 if (!is_mm_lsm_fe_id(fe_id)) {
1394 pr_err("%s: bad MM ID\n", __func__);
1395 return -EINVAL;
1396 }
1397
1398 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1399 &be_id, &cfg_data);
1400 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301401 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001402 return ret;
1403 }
1404
1405 app_type = cfg_data.app_type;
1406 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1407 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1408}
1409EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1410
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301411int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1412 int dspst_id, int stream_type,
1413 uint32_t passthr_mode)
1414{
1415 int i, j, session_type, path_type, port_type, topology;
1416 int num_copps = 0;
1417 struct route_payload payload;
1418 u32 channels, sample_rate;
1419 u16 bit_width = 16;
1420 bool is_lsm;
1421
1422 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1423 __func__, fe_id, perf_mode, dspst_id,
1424 stream_type, passthr_mode);
1425 if (!is_mm_lsm_fe_id(fe_id)) {
1426 /* bad ID assigned in machine driver */
1427 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1428 return -EINVAL;
1429 }
1430
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301431 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1432 session_type = SESSION_TYPE_RX;
1433 if (passthr_mode != LEGACY_PCM)
1434 path_type = ADM_PATH_COMPRESSED_RX;
1435 else
1436 path_type = ADM_PATH_PLAYBACK;
1437 port_type = MSM_AFE_PORT_TYPE_RX;
1438 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1439 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301440 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301441 path_type = ADM_PATH_COMPRESSED_TX;
1442 else
1443 path_type = ADM_PATH_LIVE_REC;
1444 port_type = MSM_AFE_PORT_TYPE_TX;
1445 } else {
1446 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1447 return -EINVAL;
1448 }
1449
1450 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1451 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1452 mutex_lock(&routing_lock);
1453
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301454 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301455 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1456 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1457 if (!route_check_fe_id_adm_support(fe_id)) {
1458 /* ignore adm open if not supported for fe_id */
1459 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1460 mutex_unlock(&routing_lock);
1461 return 0;
1462 }
1463
1464 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301465 /* re-enable EQ if active */
1466 msm_qti_pp_send_eq_values(fe_id);
1467 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301468 if (!is_be_dai_extproc(i) &&
1469 (afe_get_port_type(msm_bedais[i].port_id) ==
1470 port_type) &&
1471 (msm_bedais[i].active) &&
1472 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1473 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301474 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301475
1476 /*
1477 * check if ADM needs to be configured with different
1478 * channel mapping than backend
1479 */
1480 if (!msm_bedais[i].adm_override_ch)
1481 channels = msm_bedais[i].channel;
1482 else
1483 channels = msm_bedais[i].adm_override_ch;
1484
1485 bit_width = msm_routing_get_bit_width(
1486 msm_bedais[i].format);
1487 app_type =
1488 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1489 if (app_type && is_lsm) {
1490 app_type_idx =
1491 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1492 sample_rate =
1493 fe_dai_app_type_cfg[fe_id][session_type][i]
1494 .sample_rate;
1495 bit_width =
1496 lsm_app_type_cfg[app_type_idx].bit_width;
1497 } else if (app_type) {
1498 app_type_idx =
1499 msm_pcm_routing_get_app_type_idx(
1500 app_type);
1501 sample_rate =
1502 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1503 bit_width =
1504 app_type_cfg[app_type_idx].bit_width;
1505 } else {
1506 sample_rate = msm_bedais[i].sample_rate;
1507 }
1508 acdb_dev_id =
1509 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1510 topology = msm_routing_get_adm_topology(fe_id,
1511 session_type,
1512 i);
1513 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1514 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001515 COMPRESSED_PASSTHROUGH_GEN)
1516 || (passthr_mode ==
1517 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301518 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1519 pr_debug("%s: Before adm open topology %d\n", __func__,
1520 topology);
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301521 if (hifi_filter_enabled)
1522 bit_width = msm_routing_get_bit_width(
1523 SNDRV_PCM_FORMAT_S32_LE);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301524
1525 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301526 adm_open(port_id, path_type, sample_rate,
1527 channels, topology, perf_mode,
1528 bit_width, app_type, acdb_dev_id,
1529 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301530 if ((copp_idx < 0) ||
1531 (copp_idx >= MAX_COPPS_PER_PORT)) {
1532 pr_err("%s:adm open failed coppid:%d\n",
1533 __func__, copp_idx);
1534 mutex_unlock(&routing_lock);
1535 return -EINVAL;
1536 }
1537 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1538 __func__, fe_id, session_type, i);
1539 set_bit(copp_idx,
1540 &session_copp_map[fe_id][session_type][i]);
1541
1542 if (msm_is_resample_needed(
1543 sample_rate,
1544 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301545 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301546 msm_bedais[i].sample_rate);
1547
1548 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1549 unsigned long copp =
1550 session_copp_map[fe_id][session_type][i];
1551 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301552 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301553 payload.copp_idx[num_copps] = j;
1554 payload.app_type[num_copps] =
1555 fe_dai_app_type_cfg
1556 [fe_id][session_type][i]
1557 .app_type;
1558 payload.acdb_dev_id[num_copps] =
1559 fe_dai_app_type_cfg
1560 [fe_id][session_type][i]
1561 .acdb_dev_id;
1562 payload.sample_rate[num_copps] =
1563 fe_dai_app_type_cfg
1564 [fe_id][session_type][i]
1565 .sample_rate;
1566 num_copps++;
1567 }
1568 }
1569 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001570 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301571 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301572 msm_routing_send_device_pp_params(port_id,
1573 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301574 }
1575 }
1576 if (num_copps) {
1577 payload.num_copps = num_copps;
1578 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1579 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1580 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1581 }
1582 mutex_unlock(&routing_lock);
1583 return 0;
1584}
1585
1586static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1587{
1588 u32 session_id;
1589
1590 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301591 case MSM_FRONTEND_DAI_QCHAT:
1592 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1593 break;
1594 case MSM_FRONTEND_DAI_VOIP:
1595 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1596 break;
1597 case MSM_FRONTEND_DAI_VOICEMMODE1:
1598 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1599 break;
1600 case MSM_FRONTEND_DAI_VOICEMMODE2:
1601 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1602 break;
1603 default:
1604 session_id = 0;
1605 }
1606
1607 pr_debug("%s session_id 0x%x", __func__, session_id);
1608 return session_id;
1609}
1610
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301611static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1612 int dspst_id, int stream_type)
1613{
1614 int copp_idx = 0;
1615 int sess_type = 0;
1616 int j = 0, be_id = 0;
1617 int ret = 0;
1618
1619 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1620 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1621 return 0;
1622 }
1623
1624 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1625 sess_type = SESSION_TYPE_RX;
1626 else
1627 sess_type = SESSION_TYPE_TX;
1628
1629 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1630 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1631 __func__, fe_id, sess_type);
1632 return 0;
1633 }
1634
1635 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1636 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1637 channel_mixer_v2[fe_id][sess_type].input_channel;
1638
1639 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1640 __func__, sess_type, fe_id,
1641 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1642 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1643 msm_bedais[be_id].active);
1644
1645 if ((msm_bedais[be_id].active) &&
1646 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1647 unsigned long copp =
1648 session_copp_map[fe_id][sess_type][be_id];
1649 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1650 if (test_bit(j, &copp)) {
1651 copp_idx = j;
1652 break;
1653 }
1654 }
1655
1656 ret = adm_programable_channel_mixer(
1657 msm_bedais[be_id].port_id,
1658 copp_idx, dspst_id, sess_type,
1659 &channel_mixer_v2[fe_id][sess_type], 0);
1660 }
1661
1662 return ret;
1663}
1664
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301665static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1666 int dspst_id, int stream_type)
1667{
1668 int copp_idx = 0;
1669 int sess_type = 0;
1670 int i = 0, j = 0, be_id;
1671 int ret = 0;
1672
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301673 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1674 dspst_id, stream_type);
1675 if (ret) {
1676 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1677 fe_id);
1678 return ret;
1679 }
1680
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301681 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1682 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1683 return 0;
1684 }
1685
1686 if (!(channel_mixer[fe_id].enable)) {
1687 pr_debug("%s: channel mixer not enabled for FE %d\n",
1688 __func__, fe_id);
1689 return 0;
1690 }
1691
1692 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1693 sess_type = SESSION_TYPE_RX;
1694 else
1695 sess_type = SESSION_TYPE_TX;
1696
1697 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1698 ++i) {
1699 be_id = channel_input[fe_id][i] - 1;
1700 channel_mixer[fe_id].input_channels[i] =
1701 msm_bedais[be_id].channel;
1702
1703 if ((msm_bedais[be_id].active) &&
1704 test_bit(fe_id,
1705 &msm_bedais[be_id].fe_sessions[0])) {
1706 unsigned long copp =
1707 session_copp_map[fe_id][sess_type][be_id];
1708 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1709 if (test_bit(j, &copp)) {
1710 copp_idx = j;
1711 break;
1712 }
1713 }
1714
1715 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1716 __func__,
1717 fe_id, be_id, msm_bedais[be_id].channel,
1718 copp_idx);
1719 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001720 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301721 copp_idx, dspst_id, sess_type,
1722 channel_mixer + fe_id, i);
1723 }
1724 }
1725
1726 return ret;
1727}
1728
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301729/**
1730 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1731 * setting during runtime.
1732 *
1733 * @be_id: backend index
1734 * @session_id: session index
1735 * @session_type: session type
1736 * @params: parameters for channel mixer
1737 *
1738 * Retuen: 0 for success, else error
1739 */
1740int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1741 int session_type,
1742 struct msm_pcm_channel_mixer *params)
1743{
1744 int rc = 0;
1745 int port_id, copp_idx = 0;
1746
1747 be_id--;
1748 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1749 pr_err("%s: invalid backend id %d\n", __func__,
1750 be_id);
1751 return -EINVAL;
1752 }
1753
1754 port_id = msm_bedais[be_id].port_id;
1755 copp_idx = adm_get_default_copp_idx(port_id);
1756 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1757 __func__, port_id, copp_idx, session_id);
1758
1759 if ((params->input_channel < 0) ||
1760 (params->input_channel > ADM_MAX_CHANNELS)) {
1761 pr_err("%s: invalid input channel %d\n", __func__,
1762 params->input_channel);
1763 return -EINVAL;
1764 }
1765
1766 if ((params->output_channel < 0) ||
1767 (params->output_channel > ADM_MAX_CHANNELS)) {
1768 pr_err("%s: invalid output channel %d\n", __func__,
1769 params->output_channel);
1770 return -EINVAL;
1771 }
1772
1773 params->input_channels[0] = params->input_channel;
1774
1775 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1776 __func__, session_type,
1777 params->override_in_ch_map,
1778 params->override_out_ch_map,
1779 msm_bedais[be_id].active);
1780
1781 rc = adm_programable_channel_mixer(port_id,
1782 copp_idx,
1783 session_id,
1784 session_type,
1785 params,
1786 0);
1787 if (rc) {
1788 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1789 rc = -EINVAL;
1790 }
1791 return rc;
1792}
1793EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301795int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1796 int dspst_id, int stream_type)
1797{
1798 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1799 struct route_payload payload;
1800 u32 channels, sample_rate;
1801 uint16_t bits_per_sample = 16;
1802 uint32_t passthr_mode = LEGACY_PCM;
1803 int ret = 0;
1804
1805 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1806 /* bad ID assigned in machine driver */
1807 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1808 return -EINVAL;
1809 }
1810
1811 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1812 session_type = SESSION_TYPE_RX;
1813 path_type = ADM_PATH_PLAYBACK;
1814 port_type = MSM_AFE_PORT_TYPE_RX;
1815 } else {
1816 session_type = SESSION_TYPE_TX;
1817 path_type = ADM_PATH_LIVE_REC;
1818 port_type = MSM_AFE_PORT_TYPE_TX;
1819 }
1820
1821 mutex_lock(&routing_lock);
1822
1823 payload.num_copps = 0; /* only RX needs to use payload */
1824 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1825 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301826 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301827
1828 /* re-enable EQ if active */
1829 msm_qti_pp_send_eq_values(fedai_id);
1830 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1831 if (!is_be_dai_extproc(i) &&
1832 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1833 (msm_bedais[i].active) &&
1834 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1835 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301836 int port_id = get_port_id(msm_bedais[i].port_id);
1837
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301838 /*
1839 * check if ADM needs to be configured with different
1840 * channel mapping than backend
1841 */
1842 if (!msm_bedais[i].adm_override_ch)
1843 channels = msm_bedais[i].channel;
1844 else
1845 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301846
1847 bits_per_sample = msm_routing_get_bit_width(
1848 msm_bedais[i].format);
1849
1850 app_type =
1851 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1852 if (app_type) {
1853 app_type_idx =
1854 msm_pcm_routing_get_app_type_idx(app_type);
1855 sample_rate =
1856 fe_dai_app_type_cfg[fedai_id][session_type][i]
1857 .sample_rate;
1858 bits_per_sample =
1859 app_type_cfg[app_type_idx].bit_width;
1860 } else
1861 sample_rate = msm_bedais[i].sample_rate;
1862
1863 acdb_dev_id =
1864 fe_dai_app_type_cfg[fedai_id][session_type][i]
1865 .acdb_dev_id;
1866 topology = msm_routing_get_adm_topology(fedai_id,
1867 session_type,
1868 i);
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301869 if (hifi_filter_enabled)
1870 bits_per_sample = msm_routing_get_bit_width(
1871 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05301872 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301873 sample_rate, channels, topology,
1874 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301875 app_type, acdb_dev_id,
1876 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301877 if ((copp_idx < 0) ||
1878 (copp_idx >= MAX_COPPS_PER_PORT)) {
1879 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001880 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301881 mutex_unlock(&routing_lock);
1882 return -EINVAL;
1883 }
1884 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1885 __func__, fedai_id, session_type, i);
1886 set_bit(copp_idx,
1887 &session_copp_map[fedai_id][session_type][i]);
1888
1889 if (msm_is_resample_needed(
1890 sample_rate,
1891 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301892 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301893 msm_bedais[i].sample_rate);
1894
1895 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1896 unsigned long copp =
1897 session_copp_map[fedai_id][session_type][i];
1898 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301899 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301900 payload.copp_idx[num_copps] = j;
1901 payload.app_type[num_copps] =
1902 fe_dai_app_type_cfg
1903 [fedai_id][session_type]
1904 [i].app_type;
1905 payload.acdb_dev_id[num_copps] =
1906 fe_dai_app_type_cfg
1907 [fedai_id][session_type]
1908 [i].acdb_dev_id;
1909 payload.sample_rate[num_copps] =
1910 fe_dai_app_type_cfg
1911 [fedai_id][session_type]
1912 [i].sample_rate;
1913 num_copps++;
1914 }
1915 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301916 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301917 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1918 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301919 }
1920 }
1921 if (num_copps) {
1922 payload.num_copps = num_copps;
1923 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1924 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1925 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1926 }
1927
1928 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1929 dspst_id, stream_type);
1930 mutex_unlock(&routing_lock);
1931 return ret;
1932}
1933
1934int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1935 int dspst_id, int stream_type,
1936 struct msm_pcm_routing_evt event_info)
1937{
1938 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1939 stream_type)) {
1940 pr_err("%s: failed to reg phy stream\n", __func__);
1941 return -EINVAL;
1942 }
1943
1944 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1945 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1946 else
1947 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1948 return 0;
1949}
1950
1951void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1952{
Surendar Karkae7507512018-07-20 15:46:54 +05301953 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301954 struct msm_pcm_routing_fdai_data *fdai;
1955
1956 if (!is_mm_lsm_fe_id(fedai_id)) {
1957 /* bad ID assigned in machine driver */
1958 pr_err("%s: bad MM ID\n", __func__);
1959 return;
1960 }
1961
1962 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1963 port_type = MSM_AFE_PORT_TYPE_RX;
1964 session_type = SESSION_TYPE_RX;
1965 path_type = ADM_PATH_PLAYBACK;
1966 } else {
1967 port_type = MSM_AFE_PORT_TYPE_TX;
1968 session_type = SESSION_TYPE_TX;
1969 path_type = ADM_PATH_LIVE_REC;
1970 }
1971
1972 mutex_lock(&routing_lock);
1973 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1974 if (!is_be_dai_extproc(i) &&
1975 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1976 (msm_bedais[i].active) &&
1977 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1978 int idx;
1979 unsigned long copp =
1980 session_copp_map[fedai_id][session_type][i];
1981 fdai = &fe_dai_map[fedai_id][session_type];
1982
1983 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1984 if (test_bit(idx, &copp))
1985 break;
1986
1987 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1988 pr_debug("%s: copp idx is invalid, exiting\n",
1989 __func__);
1990 continue;
1991 }
Surendar Karkae7507512018-07-20 15:46:54 +05301992 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301993 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301994 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001995 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301996 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301997 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1998 __func__, copp, fedai_id, session_type, i);
1999 clear_bit(idx,
2000 &session_copp_map[fedai_id][session_type][i]);
2001 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2002 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2003 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302004 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302005 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302006 }
2007 }
2008
2009 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
2010 fe_dai_map[fedai_id][session_type].be_srate = 0;
2011 mutex_unlock(&routing_lock);
2012}
2013
2014/* Check if FE/BE route is set */
2015static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
2016{
2017 bool rc = false;
2018
2019 if (!is_mm_lsm_fe_id(fe_id)) {
2020 /* recheck FE ID in the mixer control defined in this file */
2021 pr_err("%s: bad MM ID\n", __func__);
2022 return rc;
2023 }
2024
2025 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
2026 rc = true;
2027
2028 return rc;
2029}
2030
2031static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
2032{
2033 int session_type, path_type, topology;
2034 u32 channels, sample_rate;
2035 uint16_t bits_per_sample = 16;
2036 struct msm_pcm_routing_fdai_data *fdai;
2037 uint32_t passthr_mode;
2038 bool is_lsm;
2039
2040 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2041
2042 if (!is_mm_lsm_fe_id(val)) {
2043 /* recheck FE ID in the mixer control defined in this file */
2044 pr_err("%s: bad MM ID\n", __func__);
2045 return;
2046 }
2047
2048 if (!route_check_fe_id_adm_support(val)) {
2049 /* ignore adm open if not supported for fe_id */
2050 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002051 if (set)
2052 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2053 else
2054 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302055 return;
2056 }
2057
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302058 session_type =
2059 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2060 SESSION_TYPE_RX : SESSION_TYPE_TX;
2061 fdai = &fe_dai_map[val][session_type];
2062 passthr_mode = fdai->passthr_mode;
2063 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302064 if (passthr_mode != LEGACY_PCM)
2065 path_type = ADM_PATH_COMPRESSED_RX;
2066 else
2067 path_type = ADM_PATH_PLAYBACK;
2068 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002069 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302070 path_type = ADM_PATH_COMPRESSED_TX;
2071 else
2072 path_type = ADM_PATH_LIVE_REC;
2073 }
2074 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2075 (val <= MSM_FRONTEND_DAI_LSM8);
2076
2077 mutex_lock(&routing_lock);
2078 if (set) {
2079 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2080 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2081 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2082 voc_start_playback(set, msm_bedais[reg].port_id);
2083
2084 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302085 if (msm_bedais[reg].active && fdai->strm_id !=
2086 INVALID_SESSION) {
2087 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302088 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302089 /*
2090 * check if ADM needs to be configured with different
2091 * channel mapping than backend
2092 */
2093 if (!msm_bedais[reg].adm_override_ch)
2094 channels = msm_bedais[reg].channel;
2095 else
2096 channels = msm_bedais[reg].adm_override_ch;
2097 if (session_type == SESSION_TYPE_TX &&
2098 fdai->be_srate &&
2099 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2100 pr_debug("%s: flush strm %d diff BE rates\n",
2101 __func__, fdai->strm_id);
2102
2103 if (fdai->event_info.event_func)
2104 fdai->event_info.event_func(
2105 MSM_PCM_RT_EVT_BUF_RECFG,
2106 fdai->event_info.priv_data);
2107 fdai->be_srate = 0; /* might not need it */
2108 }
2109
2110 bits_per_sample = msm_routing_get_bit_width(
2111 msm_bedais[reg].format);
2112
2113 app_type =
2114 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2115 if (app_type && is_lsm) {
2116 app_type_idx =
2117 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2118 sample_rate =
2119 fe_dai_app_type_cfg[val][session_type][reg]
2120 .sample_rate;
2121 bits_per_sample =
2122 lsm_app_type_cfg[app_type_idx].bit_width;
2123 } else if (app_type) {
2124 app_type_idx =
2125 msm_pcm_routing_get_app_type_idx(app_type);
2126 sample_rate =
2127 fe_dai_app_type_cfg[val][session_type][reg]
2128 .sample_rate;
2129 bits_per_sample =
2130 app_type_cfg[app_type_idx].bit_width;
2131 } else
2132 sample_rate = msm_bedais[reg].sample_rate;
2133
2134 topology = msm_routing_get_adm_topology(val,
2135 session_type,
2136 reg);
2137 acdb_dev_id =
2138 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05302139 if (hifi_filter_enabled)
2140 bits_per_sample = msm_routing_get_bit_width(
2141 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05302142 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302143 sample_rate, channels, topology,
2144 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302145 app_type, acdb_dev_id,
2146 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302147 if ((copp_idx < 0) ||
2148 (copp_idx >= MAX_COPPS_PER_PORT)) {
2149 pr_err("%s: adm open failed\n", __func__);
2150 mutex_unlock(&routing_lock);
2151 return;
2152 }
2153 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2154 __func__, val, session_type, reg);
2155 set_bit(copp_idx,
2156 &session_copp_map[val][session_type][reg]);
2157
2158 if (msm_is_resample_needed(
2159 sample_rate,
2160 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302161 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302162 msm_bedais[reg].sample_rate);
2163
2164 if (session_type == SESSION_TYPE_RX &&
2165 fdai->event_info.event_func)
2166 fdai->event_info.event_func(
2167 MSM_PCM_RT_EVT_DEVSWITCH,
2168 fdai->event_info.priv_data);
2169
2170 msm_pcm_routing_build_matrix(val, session_type,
2171 path_type,
2172 fdai->perf_mode,
2173 passthr_mode);
2174 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2175 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302176 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2177 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302178 }
2179 } else {
2180 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2181 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2182 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2183 voc_start_playback(set, msm_bedais[reg].port_id);
2184 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302185 if (msm_bedais[reg].active && fdai->strm_id !=
2186 INVALID_SESSION) {
2187 int idx;
2188 int port_id;
2189 unsigned long copp =
2190 session_copp_map[val][session_type][reg];
2191 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2192 if (test_bit(idx, &copp))
2193 break;
2194
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002195 if (idx >= MAX_COPPS_PER_PORT) {
2196 pr_debug("%s: copp idx is invalid, exiting\n",
2197 __func__);
2198 mutex_unlock(&routing_lock);
2199 return;
2200 }
Surendar Karkae7507512018-07-20 15:46:54 +05302201 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302202 topology = adm_get_topology_for_port_copp_idx(port_id,
2203 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002204 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302205 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302206 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2207 __func__, copp, val, session_type, reg,
2208 topology);
2209 clear_bit(idx,
2210 &session_copp_map[val][session_type][reg]);
2211 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2212 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2213 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2214 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302215 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302216 msm_pcm_routing_build_matrix(val, session_type,
2217 path_type,
2218 fdai->perf_mode,
2219 passthr_mode);
2220 }
2221 }
2222 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2223 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2224 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2225
2226 mutex_unlock(&routing_lock);
2227}
2228
2229static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2230 struct snd_ctl_elem_value *ucontrol)
2231{
2232 struct soc_mixer_control *mc =
2233 (struct soc_mixer_control *)kcontrol->private_value;
2234
Meng Wang05d5e9a2018-03-28 16:45:03 +08002235 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302236 ucontrol->value.integer.value[0] = 1;
2237 else
2238 ucontrol->value.integer.value[0] = 0;
2239
Meng Wang05d5e9a2018-03-28 16:45:03 +08002240 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302241 ucontrol->value.integer.value[0]);
2242
2243 return 0;
2244}
2245
2246static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2247 struct snd_ctl_elem_value *ucontrol)
2248{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302249 struct snd_soc_dapm_widget *widget =
2250 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302251 struct soc_mixer_control *mc =
2252 (struct soc_mixer_control *)kcontrol->private_value;
2253 struct snd_soc_dapm_update *update = NULL;
2254
2255 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002256 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2257 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302258 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2259 update);
2260 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002261 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2262 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302263 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2264 update);
2265 }
2266
2267 return 1;
2268}
2269
2270static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2271 struct snd_ctl_elem_value *ucontrol)
2272{
2273 struct soc_mixer_control *mc =
2274 (struct soc_mixer_control *)kcontrol->private_value;
2275
Meng Wang05d5e9a2018-03-28 16:45:03 +08002276 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302277 ucontrol->value.integer.value[0] = 1;
2278 else
2279 ucontrol->value.integer.value[0] = 0;
2280
Meng Wang05d5e9a2018-03-28 16:45:03 +08002281 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302282 ucontrol->value.integer.value[0]);
2283
2284 return 0;
2285}
2286
2287static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2288 struct snd_ctl_elem_value *ucontrol)
2289{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302290 struct snd_soc_dapm_widget *widget =
2291 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302292 struct soc_mixer_control *mc =
2293 (struct soc_mixer_control *)kcontrol->private_value;
2294 struct snd_soc_dapm_update *update = NULL;
2295
Meng Wang05d5e9a2018-03-28 16:45:03 +08002296 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302297 ucontrol->value.integer.value[0]);
2298
2299 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002300 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2301 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302302 snd_soc_dapm_mixer_update_power(widget->dapm,
2303 kcontrol, 1, update);
2304 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002305 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2306 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302307 snd_soc_dapm_mixer_update_power(widget->dapm,
2308 kcontrol, 0, update);
2309 }
2310
2311 return 1;
2312}
2313
2314static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2315{
2316 u32 session_id = 0;
2317 u16 path_type;
2318 struct media_format_info voc_be_media_format;
2319
2320 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2321
2322 session_id = msm_pcm_routing_get_voc_sessionid(val);
2323
2324 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2325 __func__, val, session_id);
2326
2327 mutex_lock(&routing_lock);
2328
2329 if (set)
2330 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2331 else
2332 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2333
2334 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2335 afe_get_port_type(msm_bedais[reg].port_id) ==
2336 MSM_AFE_PORT_TYPE_RX) {
2337 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2338 __func__, set, msm_bedais[reg].port_id);
2339 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2340 }
2341
2342 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2343 MSM_AFE_PORT_TYPE_RX)
2344 path_type = RX_PATH;
2345 else
2346 path_type = TX_PATH;
2347
2348 if (set) {
2349 if (msm_bedais[reg].active) {
2350 voc_set_route_flag(session_id, path_type, 1);
2351
2352 memset(&voc_be_media_format, 0,
2353 sizeof(struct media_format_info));
2354
2355 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2356 voc_be_media_format.num_channels =
2357 msm_bedais[reg].channel;
2358 voc_be_media_format.sample_rate =
2359 msm_bedais[reg].sample_rate;
2360 voc_be_media_format.bits_per_sample =
2361 msm_bedais[reg].format;
2362 /* Defaulting this to 1 for voice call usecases */
2363 voc_be_media_format.channel_mapping[0] = 1;
2364
2365 voc_set_device_config(session_id, path_type,
2366 &voc_be_media_format);
2367
2368 if (voc_get_route_flag(session_id, TX_PATH) &&
2369 voc_get_route_flag(session_id, RX_PATH))
2370 voc_enable_device(session_id);
2371 } else {
2372 pr_debug("%s BE is not active\n", __func__);
2373 }
2374 } else {
2375 voc_set_route_flag(session_id, path_type, 0);
2376 voc_disable_device(session_id);
2377 }
2378
2379 mutex_unlock(&routing_lock);
2380
2381}
2382
2383static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2384 struct snd_ctl_elem_value *ucontrol)
2385{
2386 struct soc_mixer_control *mc =
2387 (struct soc_mixer_control *)kcontrol->private_value;
2388
2389 mutex_lock(&routing_lock);
2390
Meng Wang05d5e9a2018-03-28 16:45:03 +08002391 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302392 ucontrol->value.integer.value[0] = 1;
2393 else
2394 ucontrol->value.integer.value[0] = 0;
2395
2396 mutex_unlock(&routing_lock);
2397
Meng Wang05d5e9a2018-03-28 16:45:03 +08002398 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302399 ucontrol->value.integer.value[0]);
2400
2401 return 0;
2402}
2403
2404static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2405 struct snd_ctl_elem_value *ucontrol)
2406{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302407 struct snd_soc_dapm_widget *widget =
2408 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302409 struct soc_mixer_control *mc =
2410 (struct soc_mixer_control *)kcontrol->private_value;
2411 struct snd_soc_dapm_update *update = NULL;
2412
2413 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002414 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302415 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2416 update);
2417 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002418 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302419 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2420 update);
2421 }
2422
2423 return 1;
2424}
2425
2426static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2427 struct snd_ctl_elem_value *ucontrol)
2428{
2429 struct soc_mixer_control *mc =
2430 (struct soc_mixer_control *)kcontrol->private_value;
2431
2432 mutex_lock(&routing_lock);
2433
Meng Wang05d5e9a2018-03-28 16:45:03 +08002434 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302435 ucontrol->value.integer.value[0] = 1;
2436 else
2437 ucontrol->value.integer.value[0] = 0;
2438
2439 mutex_unlock(&routing_lock);
2440
Meng Wang05d5e9a2018-03-28 16:45:03 +08002441 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302442 ucontrol->value.integer.value[0]);
2443
2444 return 0;
2445}
2446
2447static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2448 struct snd_ctl_elem_value *ucontrol)
2449{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302450 struct snd_soc_dapm_widget *widget =
2451 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302452 struct soc_mixer_control *mc =
2453 (struct soc_mixer_control *)kcontrol->private_value;
2454 struct snd_soc_dapm_update *update = NULL;
2455
2456 if (ucontrol->value.integer.value[0]) {
2457 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002458 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302459 mutex_unlock(&routing_lock);
2460
2461 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2462 update);
2463 } else {
2464 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002465 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302466 mutex_unlock(&routing_lock);
2467
2468 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2469 update);
2470 }
2471
Meng Wang05d5e9a2018-03-28 16:45:03 +08002472 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302473 ucontrol->value.integer.value[0]);
2474
2475 return 1;
2476}
2477
2478/*
2479 * Return the mapping between port ID and backend ID to enable the AFE callback
2480 * to determine the acdb_dev_id from the port id
2481 */
2482int msm_pcm_get_be_id_from_port_id(int port_id)
2483{
2484 int i;
2485 int be_id = -EINVAL;
2486
2487 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2488 if (msm_bedais[i].port_id == port_id) {
2489 be_id = i;
2490 break;
2491 }
2492 }
2493
2494 return be_id;
2495}
2496
2497/*
2498 * Return the registered dev_acdb_id given a port ID to enable identifying the
2499 * correct AFE calibration information by comparing the header information.
2500 */
2501static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2502{
2503 int acdb_id = -EINVAL;
2504 int i = 0;
2505 int session;
2506 int port_type = afe_get_port_type(port_id);
2507 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2508
2509 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2510 __func__, port_id, be_id, port_type);
2511
2512 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2513 session = SESSION_TYPE_TX;
2514 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2515 session = SESSION_TYPE_RX;
2516 } else {
2517 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2518 acdb_id = -EINVAL;
2519 goto exit;
2520 }
2521
2522 if (be_id < 0) {
2523 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2524 goto exit;
2525 }
2526
2527 mutex_lock(&routing_lock);
2528 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2529 MSM_FRONTEND_DAI_MAX);
2530 if (i < MSM_FRONTEND_DAI_MAX)
2531 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2532
2533 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2534 __func__, i, session, be_id, acdb_id);
2535 mutex_unlock(&routing_lock);
2536exit:
2537 return acdb_id;
2538}
2539
2540static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2541 struct snd_ctl_elem_value *ucontrol)
2542{
2543 ucontrol->value.integer.value[0] = fm_switch_enable;
2544 pr_debug("%s: FM Switch enable %ld\n", __func__,
2545 ucontrol->value.integer.value[0]);
2546 return 0;
2547}
2548
2549static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2550 struct snd_ctl_elem_value *ucontrol)
2551{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302552 struct snd_soc_dapm_widget *widget =
2553 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302554 struct snd_soc_dapm_update *update = NULL;
2555
2556 pr_debug("%s: FM Switch enable %ld\n", __func__,
2557 ucontrol->value.integer.value[0]);
2558 if (ucontrol->value.integer.value[0])
2559 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2560 update);
2561 else
2562 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2563 update);
2564 fm_switch_enable = ucontrol->value.integer.value[0];
2565 return 1;
2566}
2567
2568static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2569 struct snd_ctl_elem_value *ucontrol)
2570{
2571 ucontrol->value.integer.value[0] = hfp_switch_enable;
2572 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2573 ucontrol->value.integer.value[0]);
2574 return 0;
2575}
2576
2577static int msm_routing_put_hfp_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: HFP 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,
2588 1, update);
2589 else
2590 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2591 0, update);
2592 hfp_switch_enable = ucontrol->value.integer.value[0];
2593 return 1;
2594}
2595
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002596static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2597 struct snd_ctl_elem_value *ucontrol)
2598{
2599 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2600 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2601 ucontrol->value.integer.value[0]);
2602 return 0;
2603}
2604
2605static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2606 struct snd_ctl_elem_value *ucontrol)
2607{
2608 struct snd_soc_dapm_widget *widget =
2609 snd_soc_dapm_kcontrol_widget(kcontrol);
2610 struct snd_soc_dapm_update *update = NULL;
2611
2612 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2613 ucontrol->value.integer.value[0]);
2614 a2dp_switch_enable = ucontrol->value.integer.value[0];
2615 if (a2dp_switch_enable)
2616 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2617 1, update);
2618 else
2619 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2620 0, update);
2621 return 1;
2622}
2623
Zhou Songcaa541d2019-02-19 18:37:47 +08002624static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2625 struct snd_ctl_elem_value *ucontrol)
2626{
2627 ucontrol->value.integer.value[0] = sco_switch_enable;
2628 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2629 ucontrol->value.integer.value[0]);
2630 return 0;
2631}
2632
2633static int msm_routing_sco_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: SCO Switch enable %ld\n", __func__,
2641 ucontrol->value.integer.value[0]);
2642 sco_switch_enable = ucontrol->value.integer.value[0];
2643 if (sco_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
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302652static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2653 struct snd_ctl_elem_value *ucontrol)
2654{
2655 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2656 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2657 ucontrol->value.integer.value[0]);
2658 return 0;
2659}
2660
2661static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2662 struct snd_ctl_elem_value *ucontrol)
2663{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302664 struct snd_soc_dapm_widget *widget =
2665 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302666 struct snd_soc_dapm_update *update = NULL;
2667
2668 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2669 ucontrol->value.integer.value[0]);
2670 if (ucontrol->value.integer.value[0])
2671 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2672 update);
2673 else
2674 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2675 update);
2676 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2677 return 1;
2678}
2679
2680static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2681 struct snd_ctl_elem_value *ucontrol)
2682{
2683 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2684 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2685 ucontrol->value.integer.value[0]);
2686 return 0;
2687}
2688
2689static int msm_routing_put_int4_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: INT4 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 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2705 return 1;
2706}
2707
2708static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2709 struct snd_ctl_elem_value *ucontrol)
2710{
2711 ucontrol->value.integer.value[0] = usb_switch_enable;
2712 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2713 ucontrol->value.integer.value[0]);
2714 return 0;
2715}
2716
2717static int msm_routing_put_usb_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: USB 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,
2728 1, update);
2729 else
2730 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2731 0, update);
2732 usb_switch_enable = ucontrol->value.integer.value[0];
2733 return 1;
2734}
2735
2736static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2737 struct snd_ctl_elem_value *ucontrol)
2738{
2739 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2740 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2741 ucontrol->value.integer.value[0]);
2742 return 0;
2743}
2744
2745static int msm_routing_put_pri_mi2s_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: PRI MI2S 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, 1,
2756 update);
2757 else
2758 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2759 update);
2760 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2761 return 1;
2762}
2763
2764static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2765 struct snd_ctl_elem_value *ucontrol)
2766{
2767 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2768 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2769 ucontrol->value.integer.value[0]);
2770 return 0;
2771}
2772
2773static int msm_routing_put_sec_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: SEC 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 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2789 return 1;
2790}
2791
2792static int msm_routing_get_tert_mi2s_switch_mixer(
2793 struct snd_kcontrol *kcontrol,
2794 struct snd_ctl_elem_value *ucontrol)
2795{
2796 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2797 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2798 ucontrol->value.integer.value[0]);
2799 return 0;
2800}
2801
2802static int msm_routing_put_tert_mi2s_switch_mixer(
2803 struct snd_kcontrol *kcontrol,
2804 struct snd_ctl_elem_value *ucontrol)
2805{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302806 struct snd_soc_dapm_widget *widget =
2807 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302808 struct snd_soc_dapm_update *update = NULL;
2809
2810 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2811 ucontrol->value.integer.value[0]);
2812 if (ucontrol->value.integer.value[0])
2813 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2814 update);
2815 else
2816 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2817 update);
2818 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2819 return 1;
2820}
2821
2822static int msm_routing_get_quat_mi2s_switch_mixer(
2823 struct snd_kcontrol *kcontrol,
2824 struct snd_ctl_elem_value *ucontrol)
2825{
2826 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2827 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2828 ucontrol->value.integer.value[0]);
2829 return 0;
2830}
2831
2832static int msm_routing_put_quat_mi2s_switch_mixer(
2833 struct snd_kcontrol *kcontrol,
2834 struct snd_ctl_elem_value *ucontrol)
2835{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302836 struct snd_soc_dapm_widget *widget =
2837 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302838 struct snd_soc_dapm_update *update = NULL;
2839
2840 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2841 ucontrol->value.integer.value[0]);
2842 if (ucontrol->value.integer.value[0])
2843 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2844 update);
2845 else
2846 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2847 update);
2848 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2849 return 1;
2850}
2851
Rohit Kumara5077932017-09-10 22:05:05 +05302852static int msm_routing_get_quin_mi2s_switch_mixer(
2853 struct snd_kcontrol *kcontrol,
2854 struct snd_ctl_elem_value *ucontrol)
2855{
2856 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2857 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2858 ucontrol->value.integer.value[0]);
2859 return 0;
2860}
2861
2862static int msm_routing_put_quin_mi2s_switch_mixer(
2863 struct snd_kcontrol *kcontrol,
2864 struct snd_ctl_elem_value *ucontrol)
2865{
2866 struct snd_soc_dapm_widget *widget =
2867 snd_soc_dapm_kcontrol_widget(kcontrol);
2868 struct snd_soc_dapm_update *update = NULL;
2869
2870 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2871 ucontrol->value.integer.value[0]);
2872 if (ucontrol->value.integer.value[0])
2873 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2874 update);
2875 else
2876 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2877 update);
2878 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2879 return 1;
2880}
2881
Karthikeyan Manic3700752019-03-11 18:33:53 -07002882static int msm_routing_get_sen_mi2s_switch_mixer(
2883 struct snd_kcontrol *kcontrol,
2884 struct snd_ctl_elem_value *ucontrol)
2885{
2886 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2887 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2888 ucontrol->value.integer.value[0]);
2889 return 0;
2890}
2891
2892static int msm_routing_put_sen_mi2s_switch_mixer(
2893 struct snd_kcontrol *kcontrol,
2894 struct snd_ctl_elem_value *ucontrol)
2895{
2896 struct snd_soc_dapm_widget *widget =
2897 snd_soc_dapm_kcontrol_widget(kcontrol);
2898 struct snd_soc_dapm_update *update = NULL;
2899
2900 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2901 ucontrol->value.integer.value[0]);
2902 if (ucontrol->value.integer.value[0])
2903 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2904 update);
2905 else
2906 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2907 update);
2908 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2909 return 1;
2910}
2911
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302912static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2913 struct snd_ctl_elem_value *ucontrol)
2914{
2915 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2916 pr_debug("%s: FM Switch enable %ld\n", __func__,
2917 ucontrol->value.integer.value[0]);
2918 return 0;
2919}
2920
2921static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2922 struct snd_ctl_elem_value *ucontrol)
2923{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302924 struct snd_soc_dapm_widget *widget =
2925 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302926 struct snd_soc_dapm_update *update = NULL;
2927
2928 pr_debug("%s: FM 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 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2937 return 1;
2938}
2939
2940static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2941 struct snd_ctl_elem_value *ucontrol)
2942{
2943 ucontrol->value.integer.value[0] = lsm_port_index;
2944 return 0;
2945}
2946
2947static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2948 struct snd_ctl_elem_value *ucontrol)
2949{
2950 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2951 int mux = ucontrol->value.enumerated.item[0];
2952 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2953
2954 if (mux >= e->items) {
2955 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2956 return -EINVAL;
2957 }
2958
2959 pr_debug("%s: LSM enable %ld\n", __func__,
2960 ucontrol->value.integer.value[0]);
2961 switch (ucontrol->value.integer.value[0]) {
2962 case 1:
2963 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2964 break;
2965 case 2:
2966 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2967 break;
2968 case 3:
2969 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2970 break;
2971 case 4:
2972 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2973 break;
2974 case 5:
2975 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2976 break;
2977 case 6:
2978 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2979 break;
2980 case 7:
2981 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2982 break;
2983 case 8:
2984 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2985 break;
2986 case 9:
2987 lsm_port = ADM_LSM_PORT_ID;
2988 break;
2989 case 10:
2990 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2991 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302992 case 11:
2993 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2994 break;
2995 case 12:
2996 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2997 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302998 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002999 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303000 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303001 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003002 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3003 break;
3004 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303005 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
3006 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303007 default:
3008 pr_err("Default lsm port");
3009 break;
3010 }
3011 set_lsm_port(lsm_port);
3012 lsm_port_index = ucontrol->value.integer.value[0];
3013
3014 return 0;
3015}
3016
3017static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3018 struct snd_ctl_elem_value *ucontrol)
3019{
3020 int i;
3021 u16 port_id;
3022 enum afe_mad_type mad_type;
3023
3024 pr_debug("%s: enter\n", __func__);
3025 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3026 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3027 strlen(lsm_port_text[i])))
3028 break;
3029
3030 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003031 pr_warn("%s: Invalid id name %s\n", __func__,
3032 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303033 return -EINVAL;
3034 }
3035
3036 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3037
3038 /*Check for Tertiary/Quaternary/INT3 TX port*/
3039 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3040 strlen(lsm_port_text[7])))
3041 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3042
3043 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3044 strlen(lsm_port_text[8])))
3045 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3046
3047 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3048 strlen(lsm_port_text[10])))
3049 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3050
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303051 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3052 strlen(lsm_port_text[13])))
3053 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3054
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303055 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3056 strlen(lsm_port_text[14])))
3057 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3058
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303059 mad_type = afe_port_get_mad_type(port_id);
3060 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3061 mad_type);
3062 switch (mad_type) {
3063 case MAD_HW_NONE:
3064 ucontrol->value.integer.value[0] = MADNONE;
3065 break;
3066 case MAD_HW_AUDIO:
3067 ucontrol->value.integer.value[0] = MADAUDIO;
3068 break;
3069 case MAD_HW_BEACON:
3070 ucontrol->value.integer.value[0] = MADBEACON;
3071 break;
3072 case MAD_HW_ULTRASOUND:
3073 ucontrol->value.integer.value[0] = MADULTRASOUND;
3074 break;
3075 case MAD_SW_AUDIO:
3076 ucontrol->value.integer.value[0] = MADSWAUDIO;
3077 break;
3078 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003079 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303080 return -EINVAL;
3081 }
3082 return 0;
3083}
3084
3085static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3086 struct snd_ctl_elem_value *ucontrol)
3087{
3088 int i;
3089 u16 port_id;
3090 enum afe_mad_type mad_type;
3091
3092 pr_debug("%s: enter\n", __func__);
3093 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3094 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3095 strlen(lsm_port_text[i])))
3096 break;
3097
3098 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003099 pr_warn("%s: Invalid id name %s\n", __func__,
3100 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303101 return -EINVAL;
3102 }
3103
3104 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3105 switch (ucontrol->value.integer.value[0]) {
3106 case MADNONE:
3107 mad_type = MAD_HW_NONE;
3108 break;
3109 case MADAUDIO:
3110 mad_type = MAD_HW_AUDIO;
3111 break;
3112 case MADBEACON:
3113 mad_type = MAD_HW_BEACON;
3114 break;
3115 case MADULTRASOUND:
3116 mad_type = MAD_HW_ULTRASOUND;
3117 break;
3118 case MADSWAUDIO:
3119 mad_type = MAD_SW_AUDIO;
3120 break;
3121 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003122 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303123 return -EINVAL;
3124 }
3125
3126 /*Check for Tertiary/Quaternary/INT3 TX port*/
3127 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3128 strlen(lsm_port_text[7])))
3129 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3130
3131 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3132 strlen(lsm_port_text[8])))
3133 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3134
3135 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3136 strlen(lsm_port_text[10])))
3137 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3138
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303139 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3140 strlen(lsm_port_text[13])))
3141 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3142
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303143 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3144 strlen(lsm_port_text[14])))
3145 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3146
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303147 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3148 mad_type);
3149 return afe_port_set_mad_type(port_id, mad_type);
3150}
3151
3152static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3153
Surendar Karka25e77dd2019-05-09 14:33:45 +05303154static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303155 adm_override_chs_text);
3156
3157static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3158{
3159 int backend_id;
3160
3161 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3162 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303163 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3164 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303165 } else {
3166 pr_err("%s: unsupported backend id: %s",
3167 __func__, kcontrol->id.name);
3168 return -EINVAL;
3169 }
3170
3171 return backend_id;
3172}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303173
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303174static int msm_routing_adm_channel_config_get(
3175 struct snd_kcontrol *kcontrol,
3176 struct snd_ctl_elem_value *ucontrol)
3177{
3178 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3179
3180 if (backend_id >= 0) {
3181 mutex_lock(&routing_lock);
3182 ucontrol->value.integer.value[0] =
3183 msm_bedais[backend_id].adm_override_ch;
3184 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3185 ucontrol->value.integer.value[0], backend_id);
3186 mutex_unlock(&routing_lock);
3187 }
3188
3189 return 0;
3190}
3191
3192static int msm_routing_adm_channel_config_put(
3193 struct snd_kcontrol *kcontrol,
3194 struct snd_ctl_elem_value *ucontrol)
3195{
3196 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3197
3198 if (backend_id >= 0) {
3199 mutex_lock(&routing_lock);
3200 msm_bedais[backend_id].adm_override_ch =
3201 ucontrol->value.integer.value[0];
3202 pr_debug("%s:updating BE :%d adm channels: %d\n",
3203 __func__, backend_id,
3204 msm_bedais[backend_id].adm_override_ch);
3205 mutex_unlock(&routing_lock);
3206 }
3207
3208 return 0;
3209}
3210
3211static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303212 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3213 msm_routing_adm_channel_config_get,
3214 msm_routing_adm_channel_config_put),
3215 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303216 msm_routing_adm_channel_config_get,
3217 msm_routing_adm_channel_config_put),
3218};
3219
3220static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3221 struct snd_ctl_elem_value *ucontrol)
3222{
3223
3224 mutex_lock(&routing_lock);
3225 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3226 mutex_unlock(&routing_lock);
3227 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3228 ucontrol->value.integer.value[0]);
3229 return 0;
3230};
3231
3232static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3233 struct snd_ctl_elem_value *ucontrol)
3234{
3235 struct aanc_data aanc_info;
3236
3237 mutex_lock(&routing_lock);
3238 memset(&aanc_info, 0x00, sizeof(aanc_info));
3239 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3240 ucontrol->value.integer.value[0]);
3241 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3242 if (ucontrol->value.integer.value[0] == 0) {
3243 aanc_info.aanc_active = false;
3244 aanc_info.aanc_tx_port = 0;
3245 aanc_info.aanc_rx_port = 0;
3246 } else {
3247 aanc_info.aanc_active = true;
3248 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3249 aanc_info.aanc_tx_port =
3250 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3251 }
3252 afe_set_aanc_info(&aanc_info);
3253 mutex_unlock(&routing_lock);
3254 return 0;
3255};
3256static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3257 struct snd_ctl_elem_value *ucontrol)
3258{
3259 int idx = 0, shift = 0;
3260 struct soc_mixer_control *mc =
3261 (struct soc_mixer_control *)kcontrol->private_value;
3262
Meng Wang05d5e9a2018-03-28 16:45:03 +08003263 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3264 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303265
3266 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3267 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3268 return -EINVAL;
3269 }
3270
3271 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003272 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303273 ucontrol->value.integer.value[0] = 1;
3274 else
3275 ucontrol->value.integer.value[0] = 0;
3276
Meng Wang05d5e9a2018-03-28 16:45:03 +08003277 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303278 ucontrol->value.integer.value[0]);
3279
3280 return 0;
3281}
3282
3283static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3284 struct snd_ctl_elem_value *ucontrol)
3285{
3286 int idx = 0, shift = 0;
3287 struct soc_mixer_control *mc =
3288 (struct soc_mixer_control *)kcontrol->private_value;
3289
Meng Wang05d5e9a2018-03-28 16:45:03 +08003290 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3291 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303292
3293 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3294 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3295 return -EINVAL;
3296 }
3297
Meng Wang05d5e9a2018-03-28 16:45:03 +08003298 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3299 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303300 ucontrol->value.integer.value[0], idx, shift);
3301
3302 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003303 afe_loopback(1, msm_bedais[mc->shift].port_id,
3304 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303305 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003306 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303307 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003308 afe_loopback(0, msm_bedais[mc->shift].port_id,
3309 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303310 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003311 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303312 }
3313
3314 return 1;
3315}
3316
3317static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3318 struct snd_ctl_elem_value *ucontrol)
3319{
3320 u16 fe_id = 0;
3321
3322 fe_id = ((struct soc_mixer_control *)
3323 kcontrol->private_value)->shift;
3324 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3325 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3326 return -EINVAL;
3327 }
3328
3329 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3330
3331 return 0;
3332}
3333
3334static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3335 struct snd_ctl_elem_value *ucontrol)
3336{
3337 u16 fe_id = 0;
3338
3339 fe_id = ((struct soc_mixer_control *)
3340 kcontrol->private_value)->shift;
3341 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3342 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3343 return -EINVAL;
3344 }
3345
3346 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3347
3348 return 1;
3349}
3350
3351static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3352 struct snd_ctl_elem_value *ucontrol)
3353{
3354 u16 fe_id = 0;
3355
3356 fe_id = ((struct soc_multi_mixer_control *)
3357 kcontrol->private_value)->shift;
3358 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3359 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3360 return -EINVAL;
3361 }
3362
3363 ucontrol->value.integer.value[0] =
3364 channel_mixer[fe_id].output_channel;
3365 return 0;
3366}
3367
3368static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3369 struct snd_ctl_elem_value *ucontrol)
3370{
3371 u16 fe_id = 0;
3372
3373 fe_id = ((struct soc_multi_mixer_control *)
3374 kcontrol->private_value)->shift;
3375 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3376 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3377 return -EINVAL;
3378 }
3379
3380 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3381 fe_id,
3382 (unsigned int)(ucontrol->value.integer.value[0]));
3383 channel_mixer[fe_id].output_channel =
3384 (unsigned int)(ucontrol->value.integer.value[0]);
3385
3386 return 1;
3387}
3388
3389static const char *const ch_mixer[] = {"Disable", "Enable"};
3390
3391/* If new backend is added, need update this array */
3392static const char *const be_name[] = {
3393"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3394"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3395"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3396"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3397"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3398"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3399"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3400"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3401"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3402"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3403"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3404"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003405"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303406"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3407"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3408"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3409"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3410"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3411"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3412"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3413"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3414"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3415"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3416"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3417"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3418"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3419"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3420"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3421"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3422"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303423"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3424"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3425"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3426"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003427"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3428"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3429"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3430"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003431"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3432"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3433"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3434"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3435"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3436"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3437"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3438"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 -08003439"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 +05303440"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3441"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3442"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3443"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3444"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003445"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303446};
3447
3448static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3449 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3450static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3451 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3452static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3453 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3454static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3455 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303456static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
3457 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
3458static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
3459 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
3460static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
3461 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
3462static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
3463 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303464static SOC_ENUM_SINGLE_DECL(mm30_channel_mux,
3465 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, ch_mixer);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303466
3467static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3468 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3469static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3470 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3471static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3472 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3473static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3474 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3475static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3476 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3477static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3478 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3479static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3480 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3481static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3482 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303483static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
3484 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
3485static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
3486 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
3487static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
3488 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
3489static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
3490 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
3491static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
3492 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
3493static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
3494 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
3495static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
3496 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
3497static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
3498 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303499static SOC_ENUM_DOUBLE_DECL(mm30_ch1_enum,
3500 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 0, be_name);
3501static SOC_ENUM_DOUBLE_DECL(mm30_ch2_enum,
3502 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, be_name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303503
3504static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3505 unsigned int channels,
3506 unsigned int items, const char *const names[])
3507{
3508 if (uinfo->value.enumerated.item >= items)
3509 uinfo->value.enumerated.item = items - 1;
3510
3511 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3512 sizeof(uinfo->value.enumerated.name),
3513 "ALSA: too long item name '%s'\n",
3514 names[uinfo->value.enumerated.item]);
3515 strlcpy(uinfo->value.enumerated.name,
3516 names[uinfo->value.enumerated.item],
3517 sizeof(uinfo->value.enumerated.name));
3518 return 0;
3519}
3520
3521static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3522 struct snd_ctl_elem_info *uinfo)
3523{
3524 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3525
3526 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3527 uinfo->count = 1;
3528
3529 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3530 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3531
3532 return 0;
3533}
3534static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3535 struct snd_ctl_elem_value *ucontrol)
3536{
3537 u16 fe_id = 0;
3538
3539 fe_id = ((struct soc_enum *)
3540 kcontrol->private_value)->shift_l;
3541 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3542 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3543 return -EINVAL;
3544 }
3545
3546 pr_debug("%s: FE %d %s\n", __func__,
3547 fe_id,
3548 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3549 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3550 return 0;
3551}
3552
3553static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3554 struct snd_ctl_elem_value *ucontrol)
3555{
3556 u16 fe_id = 0;
3557
3558 fe_id = ((struct soc_enum *)
3559 kcontrol->private_value)->shift_l;
3560 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3561 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3562 return -EINVAL;
3563 }
3564
3565 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3566 pr_debug("%s: %s FE %d\n", __func__,
3567 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3568 fe_id);
3569 return 0;
3570}
3571
3572static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3573 struct snd_ctl_elem_info *uinfo)
3574{
3575 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3576
3577 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3578 uinfo->count = 1;
3579
3580 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3581 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3582
3583 return 0;
3584}
3585
3586static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3587 struct snd_ctl_elem_value *ucontrol)
3588{
3589 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3590 u16 fe_id = 0, in_ch = 0;
3591
3592 fe_id = e->shift_l;
3593 in_ch = e->shift_r;
3594 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3595 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3596 return -EINVAL;
3597 }
3598 if (in_ch >= ADM_MAX_CHANNELS) {
3599 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3600 return -EINVAL;
3601 }
3602
3603 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3604 return 1;
3605}
3606
3607static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3608 struct snd_ctl_elem_value *ucontrol)
3609{
3610 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3611 u16 fe_id = 0, in_ch = 0;
3612
3613 fe_id = e->shift_l;
3614 in_ch = e->shift_r;
3615 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3616 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3617 return -EINVAL;
3618 }
3619 if (in_ch >= ADM_MAX_CHANNELS) {
3620 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3621 return -EINVAL;
3622 }
3623
3624 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3625 return 1;
3626}
3627
3628
3629static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3630 struct snd_ctl_elem_info *uinfo)
3631{
3632 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3633 uinfo->count = ADM_MAX_CHANNELS;
3634 uinfo->value.integer.min = 0;
3635 uinfo->value.integer.max = WEIGHT_0_DB;
3636
3637 return 0;
3638}
3639
3640static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3641 struct snd_ctl_elem_value *ucontrol)
3642{
3643 u16 fe_id = 0, out_ch = 0;
3644 int i, weight;
3645
3646 fe_id = ((struct soc_multi_mixer_control *)
3647 kcontrol->private_value)->shift;
3648 out_ch = ((struct soc_multi_mixer_control *)
3649 kcontrol->private_value)->rshift;
3650 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3651 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3652 return -EINVAL;
3653 }
3654 if (out_ch >= ADM_MAX_CHANNELS) {
3655 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3656 return -EINVAL;
3657 }
3658
3659 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3660 __func__, fe_id,
3661 ucontrol->value.integer.value[0],
3662 ucontrol->value.integer.value[1],
3663 ucontrol->value.integer.value[2],
3664 ucontrol->value.integer.value[3],
3665 ucontrol->value.integer.value[4],
3666 ucontrol->value.integer.value[5],
3667 ucontrol->value.integer.value[6],
3668 ucontrol->value.integer.value[7]);
3669
3670 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3671 weight = ucontrol->value.integer.value[i];
3672 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3673 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3674 __func__, fe_id, out_ch, i,
3675 channel_mixer[fe_id].channel_weight[out_ch][i]);
3676 }
3677
3678 return 0;
3679}
3680
3681static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3682 struct snd_ctl_elem_value *ucontrol)
3683{
3684 u16 fe_id = 0, out_ch = 0;
3685 int i;
3686
3687 fe_id = ((struct soc_multi_mixer_control *)
3688 kcontrol->private_value)->shift;
3689 out_ch = ((struct soc_multi_mixer_control *)
3690 kcontrol->private_value)->rshift;
3691 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3692 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3693 return -EINVAL;
3694 }
3695 if (out_ch >= ADM_MAX_CHANNELS) {
3696 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3697 return -EINVAL;
3698 }
3699
3700 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3701 ucontrol->value.integer.value[i] =
3702 channel_mixer[fe_id].channel_weight[out_ch][i];
3703
3704 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3705 __func__, fe_id,
3706 ucontrol->value.integer.value[0],
3707 ucontrol->value.integer.value[1],
3708 ucontrol->value.integer.value[2],
3709 ucontrol->value.integer.value[3],
3710 ucontrol->value.integer.value[4],
3711 ucontrol->value.integer.value[5],
3712 ucontrol->value.integer.value[6],
3713 ucontrol->value.integer.value[7]);
3714
3715 return 0;
3716}
3717
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303718static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3719 struct snd_ctl_elem_info *uinfo)
3720{
3721 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3722 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3723 /* Valid channel map value ranges from 1 to 64 */
3724 uinfo->value.integer.min = 0;
3725 uinfo->value.integer.max = 64;
3726
3727 return 0;
3728}
3729
3730static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3731 struct snd_ctl_elem_value *ucontrol)
3732{
3733 u16 fe_id = 0;
3734 int i, ch_map;
3735
3736 fe_id = ((struct soc_multi_mixer_control *)
3737 kcontrol->private_value)->shift;
3738 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3739 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3740 return -EINVAL;
3741 }
3742
3743 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3744 ch_map = ucontrol->value.integer.value[i];
3745 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3746 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3747 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3748 }
3749
3750 /* Make override_out_ch_map false if ch map is reset */
3751 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3752 channel_mixer[fe_id].override_out_ch_map = false;
3753 else
3754 channel_mixer[fe_id].override_out_ch_map = true;
3755
3756 return 0;
3757}
3758
3759static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3760 struct snd_ctl_elem_value *ucontrol)
3761{
3762 u16 fe_id = 0;
3763 int i;
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 ucontrol->value.integer.value[i] =
3774 channel_mixer[fe_id].out_ch_map[i];
3775
3776 return 0;
3777}
3778
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303779static const struct snd_kcontrol_new channel_mixer_controls[] = {
3780 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3781 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3782 msm_pcm_get_channel_rule_index,
3783 msm_pcm_put_channel_rule_index),
3784 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3785 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3786 msm_pcm_get_channel_rule_index,
3787 msm_pcm_put_channel_rule_index),
3788 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3789 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3790 msm_pcm_get_channel_rule_index,
3791 msm_pcm_put_channel_rule_index),
3792 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3793 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3794 msm_pcm_get_channel_rule_index,
3795 msm_pcm_put_channel_rule_index),
3796 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3797 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3798 msm_pcm_get_channel_rule_index,
3799 msm_pcm_put_channel_rule_index),
3800 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3801 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3802 msm_pcm_get_channel_rule_index,
3803 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303804 SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
3805 MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
3806 msm_pcm_get_channel_rule_index,
3807 msm_pcm_put_channel_rule_index),
3808 SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
3809 MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
3810 msm_pcm_get_channel_rule_index,
3811 msm_pcm_put_channel_rule_index),
3812 SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
3813 MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
3814 msm_pcm_get_channel_rule_index,
3815 msm_pcm_put_channel_rule_index),
3816 SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
3817 MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
3818 msm_pcm_get_channel_rule_index,
3819 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303820 SOC_SINGLE_EXT("MultiMedia30 Channel Rule", SND_SOC_NOPM,
3821 MSM_FRONTEND_DAI_MULTIMEDIA30, 8, 0,
3822 msm_pcm_get_channel_rule_index,
3823 msm_pcm_put_channel_rule_index),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303824
3825 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303826 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303827 msm_pcm_get_out_chs,
3828 msm_pcm_put_out_chs),
3829 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3830 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3831 msm_pcm_get_out_chs,
3832 msm_pcm_put_out_chs),
3833 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3834 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3835 msm_pcm_get_out_chs,
3836 msm_pcm_put_out_chs),
3837 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3838 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3839 msm_pcm_get_out_chs,
3840 msm_pcm_put_out_chs),
3841 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3842 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3843 msm_pcm_get_out_chs,
3844 msm_pcm_put_out_chs),
3845 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3846 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3847 msm_pcm_get_out_chs,
3848 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303849 SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
3850 MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
3851 msm_pcm_get_out_chs,
3852 msm_pcm_put_out_chs),
3853 SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
3854 MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
3855 msm_pcm_get_out_chs,
3856 msm_pcm_put_out_chs),
3857 SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
3858 MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
3859 msm_pcm_get_out_chs,
3860 msm_pcm_put_out_chs),
3861 SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
3862 MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
3863 msm_pcm_get_out_chs,
3864 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303865 SOC_SINGLE_EXT("MultiMedia30 Channels", SND_SOC_NOPM,
3866 MSM_FRONTEND_DAI_MULTIMEDIA30, 14, 0,
3867 msm_pcm_get_out_chs,
3868 msm_pcm_put_out_chs),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303869 {
3870 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3871 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3872 .name = "MultiMedia1 Channel Mixer",
3873 .info = msm_pcm_channel_mixer_info,
3874 .get = msm_pcm_channel_mixer_get,
3875 .put = msm_pcm_channel_mixer_put,
3876 .private_value = (unsigned long)&(mm1_channel_mux)
3877 },
3878 {
3879 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3880 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3881 .name = "MultiMedia2 Channel Mixer",
3882 .info = msm_pcm_channel_mixer_info,
3883 .get = msm_pcm_channel_mixer_get,
3884 .put = msm_pcm_channel_mixer_put,
3885 .private_value = (unsigned long)&(mm2_channel_mux)
3886 },
3887 {
3888 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3889 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3890 .name = "MultiMedia3 Channel Mixer",
3891 .info = msm_pcm_channel_mixer_info,
3892 .get = msm_pcm_channel_mixer_get,
3893 .put = msm_pcm_channel_mixer_put,
3894 .private_value = (unsigned long)&(mm3_channel_mux)
3895 },
3896 {
3897 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3898 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3899 .name = "MultiMedia4 Channel Mixer",
3900 .info = msm_pcm_channel_mixer_info,
3901 .get = msm_pcm_channel_mixer_get,
3902 .put = msm_pcm_channel_mixer_put,
3903 .private_value = (unsigned long)&(mm4_channel_mux)
3904 },
3905 {
3906 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3907 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303908 .name = "MultiMedia18 Channel Mixer",
3909 .info = msm_pcm_channel_mixer_info,
3910 .get = msm_pcm_channel_mixer_get,
3911 .put = msm_pcm_channel_mixer_put,
3912 .private_value = (unsigned long)&(mm18_channel_mux)
3913 },
3914 {
3915 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3916 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3917 .name = "MultiMedia19 Channel Mixer",
3918 .info = msm_pcm_channel_mixer_info,
3919 .get = msm_pcm_channel_mixer_get,
3920 .put = msm_pcm_channel_mixer_put,
3921 .private_value = (unsigned long)&(mm19_channel_mux)
3922 },
3923 {
3924 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3925 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3926 .name = "MultiMedia28 Channel Mixer",
3927 .info = msm_pcm_channel_mixer_info,
3928 .get = msm_pcm_channel_mixer_get,
3929 .put = msm_pcm_channel_mixer_put,
3930 .private_value = (unsigned long)&(mm28_channel_mux)
3931 },
3932 {
3933 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3934 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3935 .name = "MultiMedia29 Channel Mixer",
3936 .info = msm_pcm_channel_mixer_info,
3937 .get = msm_pcm_channel_mixer_get,
3938 .put = msm_pcm_channel_mixer_put,
3939 .private_value = (unsigned long)&(mm29_channel_mux)
3940 },
3941 {
3942 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3943 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303944 .name = "MultiMedia30 Channel Mixer",
3945 .info = msm_pcm_channel_mixer_info,
3946 .get = msm_pcm_channel_mixer_get,
3947 .put = msm_pcm_channel_mixer_put,
3948 .private_value = (unsigned long)&(mm30_channel_mux)
3949 },
3950 {
3951 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3952 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303953 .name = "MultiMedia1 Output Channel1",
3954 .info = msm_pcm_channel_weight_info,
3955 .get = msm_pcm_channel_weight_get,
3956 .put = msm_pcm_channel_weight_put,
3957 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3958 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3959 },
3960 {
3961 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3962 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3963 .name = "MultiMedia1 Output Channel2",
3964 .info = msm_pcm_channel_weight_info,
3965 .get = msm_pcm_channel_weight_get,
3966 .put = msm_pcm_channel_weight_put,
3967 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3968 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3969 },
3970 {
3971 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3972 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3973 .name = "MultiMedia1 Output Channel3",
3974 .info = msm_pcm_channel_weight_info,
3975 .get = msm_pcm_channel_weight_get,
3976 .put = msm_pcm_channel_weight_put,
3977 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3978 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3979 },
3980 {
3981 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3982 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3983 .name = "MultiMedia1 Output Channel4",
3984 .info = msm_pcm_channel_weight_info,
3985 .get = msm_pcm_channel_weight_get,
3986 .put = msm_pcm_channel_weight_put,
3987 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3988 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3989 },
3990 {
3991 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3992 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3993 .name = "MultiMedia1 Output Channel5",
3994 .info = msm_pcm_channel_weight_info,
3995 .get = msm_pcm_channel_weight_get,
3996 .put = msm_pcm_channel_weight_put,
3997 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3998 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3999 },
4000 {
4001 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4002 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4003 .name = "MultiMedia1 Output Channel6",
4004 .info = msm_pcm_channel_weight_info,
4005 .get = msm_pcm_channel_weight_get,
4006 .put = msm_pcm_channel_weight_put,
4007 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4008 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
4009 },
4010 {
4011 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4012 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4013 .name = "MultiMedia1 Output Channel7",
4014 .info = msm_pcm_channel_weight_info,
4015 .get = msm_pcm_channel_weight_get,
4016 .put = msm_pcm_channel_weight_put,
4017 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4018 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
4019 },
4020 {
4021 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4022 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4023 .name = "MultiMedia1 Output Channel8",
4024 .info = msm_pcm_channel_weight_info,
4025 .get = msm_pcm_channel_weight_get,
4026 .put = msm_pcm_channel_weight_put,
4027 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4028 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
4029 },
4030 {
4031 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4032 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304033 .name = "MultiMedia1 Output Channel9",
4034 .info = msm_pcm_channel_weight_info,
4035 .get = msm_pcm_channel_weight_get,
4036 .put = msm_pcm_channel_weight_put,
4037 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4038 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
4039 },
4040 {
4041 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4042 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4043 .name = "MultiMedia1 Output Channel10",
4044 .info = msm_pcm_channel_weight_info,
4045 .get = msm_pcm_channel_weight_get,
4046 .put = msm_pcm_channel_weight_put,
4047 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4048 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
4049 },
4050 {
4051 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4052 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05304053 .name = "MultiMedia1 Output Channel11",
4054 .info = msm_pcm_channel_weight_info,
4055 .get = msm_pcm_channel_weight_get,
4056 .put = msm_pcm_channel_weight_put,
4057 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4058 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
4059 },
4060 {
4061 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4062 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4063 .name = "MultiMedia1 Output Channel12",
4064 .info = msm_pcm_channel_weight_info,
4065 .get = msm_pcm_channel_weight_get,
4066 .put = msm_pcm_channel_weight_put,
4067 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4068 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
4069 },
4070 {
4071 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4072 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4073 .name = "MultiMedia1 Output Channel13",
4074 .info = msm_pcm_channel_weight_info,
4075 .get = msm_pcm_channel_weight_get,
4076 .put = msm_pcm_channel_weight_put,
4077 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4078 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
4079 },
4080 {
4081 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4082 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4083 .name = "MultiMedia1 Output Channel14",
4084 .info = msm_pcm_channel_weight_info,
4085 .get = msm_pcm_channel_weight_get,
4086 .put = msm_pcm_channel_weight_put,
4087 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4088 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
4089 },
4090 {
4091 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4092 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304093 .name = "MultiMedia2 Output Channel1",
4094 .info = msm_pcm_channel_weight_info,
4095 .get = msm_pcm_channel_weight_get,
4096 .put = msm_pcm_channel_weight_put,
4097 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4098 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
4099 },
4100 {
4101 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4102 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4103 .name = "MultiMedia2 Output Channel2",
4104 .info = msm_pcm_channel_weight_info,
4105 .get = msm_pcm_channel_weight_get,
4106 .put = msm_pcm_channel_weight_put,
4107 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4108 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
4109 },
4110 {
4111 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4112 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4113 .name = "MultiMedia2 Output Channel3",
4114 .info = msm_pcm_channel_weight_info,
4115 .get = msm_pcm_channel_weight_get,
4116 .put = msm_pcm_channel_weight_put,
4117 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4118 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
4119 },
4120 {
4121 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4122 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4123 .name = "MultiMedia3 Output Channel1",
4124 .info = msm_pcm_channel_weight_info,
4125 .get = msm_pcm_channel_weight_get,
4126 .put = msm_pcm_channel_weight_put,
4127 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4128 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
4129 },
4130 {
4131 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4132 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4133 .name = "MultiMedia3 Output Channel2",
4134 .info = msm_pcm_channel_weight_info,
4135 .get = msm_pcm_channel_weight_get,
4136 .put = msm_pcm_channel_weight_put,
4137 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4138 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
4139 },
4140 {
4141 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4142 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304143 .name = "MultiMedia18 Output Channel1",
4144 .info = msm_pcm_channel_weight_info,
4145 .get = msm_pcm_channel_weight_get,
4146 .put = msm_pcm_channel_weight_put,
4147 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4148 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 0,}
4149 },
4150 {
4151 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4152 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4153 .name = "MultiMedia18 Output Channel2",
4154 .info = msm_pcm_channel_weight_info,
4155 .get = msm_pcm_channel_weight_get,
4156 .put = msm_pcm_channel_weight_put,
4157 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4158 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 1, }
4159 },
4160 {
4161 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4162 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4163 .name = "MultiMedia18 Output Channel3",
4164 .info = msm_pcm_channel_weight_info,
4165 .get = msm_pcm_channel_weight_get,
4166 .put = msm_pcm_channel_weight_put,
4167 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4168 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 2,}
4169 },
4170 {
4171 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4172 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4173 .name = "MultiMedia18 Output Channel4",
4174 .info = msm_pcm_channel_weight_info,
4175 .get = msm_pcm_channel_weight_get,
4176 .put = msm_pcm_channel_weight_put,
4177 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4178 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 3,}
4179 },
4180 {
4181 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4182 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4183 .name = "MultiMedia18 Output Channel5",
4184 .info = msm_pcm_channel_weight_info,
4185 .get = msm_pcm_channel_weight_get,
4186 .put = msm_pcm_channel_weight_put,
4187 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4188 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 4,}
4189 },
4190 {
4191 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4192 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4193 .name = "MultiMedia18 Output Channel6",
4194 .info = msm_pcm_channel_weight_info,
4195 .get = msm_pcm_channel_weight_get,
4196 .put = msm_pcm_channel_weight_put,
4197 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4198 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 5,}
4199 },
4200 {
4201 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4202 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4203 .name = "MultiMedia18 Output Channel7",
4204 .info = msm_pcm_channel_weight_info,
4205 .get = msm_pcm_channel_weight_get,
4206 .put = msm_pcm_channel_weight_put,
4207 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4208 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 6,}
4209 },
4210 {
4211 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4212 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4213 .name = "MultiMedia18 Output Channel8",
4214 .info = msm_pcm_channel_weight_info,
4215 .get = msm_pcm_channel_weight_get,
4216 .put = msm_pcm_channel_weight_put,
4217 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4218 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 7,}
4219 },
4220 {
4221 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4222 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4223 .name = "MultiMedia18 Output Channel9",
4224 .info = msm_pcm_channel_weight_info,
4225 .get = msm_pcm_channel_weight_get,
4226 .put = msm_pcm_channel_weight_put,
4227 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4228 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 8,}
4229 },
4230 {
4231 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4232 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4233 .name = "MultiMedia18 Output Channel10",
4234 .info = msm_pcm_channel_weight_info,
4235 .get = msm_pcm_channel_weight_get,
4236 .put = msm_pcm_channel_weight_put,
4237 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4238 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 9,}
4239 },
4240 {
4241 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4242 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4243 .name = "MultiMedia18 Output Channel11",
4244 .info = msm_pcm_channel_weight_info,
4245 .get = msm_pcm_channel_weight_get,
4246 .put = msm_pcm_channel_weight_put,
4247 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4248 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 10,}
4249 },
4250 {
4251 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4252 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4253 .name = "MultiMedia18 Output Channel12",
4254 .info = msm_pcm_channel_weight_info,
4255 .get = msm_pcm_channel_weight_get,
4256 .put = msm_pcm_channel_weight_put,
4257 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4258 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 11,}
4259 },
4260 {
4261 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4262 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4263 .name = "MultiMedia18 Output Channel13",
4264 .info = msm_pcm_channel_weight_info,
4265 .get = msm_pcm_channel_weight_get,
4266 .put = msm_pcm_channel_weight_put,
4267 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4268 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 12,}
4269 },
4270 {
4271 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4272 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4273 .name = "MultiMedia18 Output Channel14",
4274 .info = msm_pcm_channel_weight_info,
4275 .get = msm_pcm_channel_weight_get,
4276 .put = msm_pcm_channel_weight_put,
4277 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4278 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 13,}
4279 },
4280 {
4281 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4282 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4283 .name = "MultiMedia19 Output Channel1",
4284 .info = msm_pcm_channel_weight_info,
4285 .get = msm_pcm_channel_weight_get,
4286 .put = msm_pcm_channel_weight_put,
4287 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4288 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 0,}
4289 },
4290 {
4291 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4292 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4293 .name = "MultiMedia19 Output Channel2",
4294 .info = msm_pcm_channel_weight_info,
4295 .get = msm_pcm_channel_weight_get,
4296 .put = msm_pcm_channel_weight_put,
4297 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4298 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 1, }
4299 },
4300 {
4301 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4302 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4303 .name = "MultiMedia19 Output Channel3",
4304 .info = msm_pcm_channel_weight_info,
4305 .get = msm_pcm_channel_weight_get,
4306 .put = msm_pcm_channel_weight_put,
4307 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4308 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 2,}
4309 },
4310 {
4311 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4312 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4313 .name = "MultiMedia19 Output Channel4",
4314 .info = msm_pcm_channel_weight_info,
4315 .get = msm_pcm_channel_weight_get,
4316 .put = msm_pcm_channel_weight_put,
4317 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4318 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 3,}
4319 },
4320 {
4321 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4322 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4323 .name = "MultiMedia19 Output Channel5",
4324 .info = msm_pcm_channel_weight_info,
4325 .get = msm_pcm_channel_weight_get,
4326 .put = msm_pcm_channel_weight_put,
4327 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4328 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 4,}
4329 },
4330 {
4331 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4332 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4333 .name = "MultiMedia19 Output Channel6",
4334 .info = msm_pcm_channel_weight_info,
4335 .get = msm_pcm_channel_weight_get,
4336 .put = msm_pcm_channel_weight_put,
4337 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4338 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 5,}
4339 },
4340 {
4341 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4342 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4343 .name = "MultiMedia19 Output Channel7",
4344 .info = msm_pcm_channel_weight_info,
4345 .get = msm_pcm_channel_weight_get,
4346 .put = msm_pcm_channel_weight_put,
4347 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4348 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 6,}
4349 },
4350 {
4351 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4352 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4353 .name = "MultiMedia19 Output Channel8",
4354 .info = msm_pcm_channel_weight_info,
4355 .get = msm_pcm_channel_weight_get,
4356 .put = msm_pcm_channel_weight_put,
4357 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4358 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 7,}
4359 },
4360 {
4361 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4362 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4363 .name = "MultiMedia19 Output Channel9",
4364 .info = msm_pcm_channel_weight_info,
4365 .get = msm_pcm_channel_weight_get,
4366 .put = msm_pcm_channel_weight_put,
4367 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4368 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 8,}
4369 },
4370 {
4371 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4372 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4373 .name = "MultiMedia19 Output Channel10",
4374 .info = msm_pcm_channel_weight_info,
4375 .get = msm_pcm_channel_weight_get,
4376 .put = msm_pcm_channel_weight_put,
4377 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4378 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 9,}
4379 },
4380 {
4381 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4382 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4383 .name = "MultiMedia19 Output Channel11",
4384 .info = msm_pcm_channel_weight_info,
4385 .get = msm_pcm_channel_weight_get,
4386 .put = msm_pcm_channel_weight_put,
4387 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4388 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 10,}
4389 },
4390 {
4391 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4392 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4393 .name = "MultiMedia19 Output Channel12",
4394 .info = msm_pcm_channel_weight_info,
4395 .get = msm_pcm_channel_weight_get,
4396 .put = msm_pcm_channel_weight_put,
4397 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4398 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 11,}
4399 },
4400 {
4401 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4402 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4403 .name = "MultiMedia19 Output Channel13",
4404 .info = msm_pcm_channel_weight_info,
4405 .get = msm_pcm_channel_weight_get,
4406 .put = msm_pcm_channel_weight_put,
4407 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4408 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 12,}
4409 },
4410 {
4411 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4412 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4413 .name = "MultiMedia19 Output Channel14",
4414 .info = msm_pcm_channel_weight_info,
4415 .get = msm_pcm_channel_weight_get,
4416 .put = msm_pcm_channel_weight_put,
4417 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4418 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 13,}
4419 },
4420 {
4421 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4422 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4423 .name = "MultiMedia28 Output Channel1",
4424 .info = msm_pcm_channel_weight_info,
4425 .get = msm_pcm_channel_weight_get,
4426 .put = msm_pcm_channel_weight_put,
4427 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4428 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 0,}
4429 },
4430 {
4431 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4432 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4433 .name = "MultiMedia28 Output Channel2",
4434 .info = msm_pcm_channel_weight_info,
4435 .get = msm_pcm_channel_weight_get,
4436 .put = msm_pcm_channel_weight_put,
4437 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4438 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 1, }
4439 },
4440 {
4441 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4442 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4443 .name = "MultiMedia28 Output Channel3",
4444 .info = msm_pcm_channel_weight_info,
4445 .get = msm_pcm_channel_weight_get,
4446 .put = msm_pcm_channel_weight_put,
4447 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4448 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 2,}
4449 },
4450 {
4451 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4452 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4453 .name = "MultiMedia28 Output Channel4",
4454 .info = msm_pcm_channel_weight_info,
4455 .get = msm_pcm_channel_weight_get,
4456 .put = msm_pcm_channel_weight_put,
4457 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4458 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 3,}
4459 },
4460 {
4461 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4462 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4463 .name = "MultiMedia28 Output Channel5",
4464 .info = msm_pcm_channel_weight_info,
4465 .get = msm_pcm_channel_weight_get,
4466 .put = msm_pcm_channel_weight_put,
4467 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4468 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 4,}
4469 },
4470 {
4471 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4472 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4473 .name = "MultiMedia28 Output Channel6",
4474 .info = msm_pcm_channel_weight_info,
4475 .get = msm_pcm_channel_weight_get,
4476 .put = msm_pcm_channel_weight_put,
4477 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4478 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 5,}
4479 },
4480 {
4481 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4482 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4483 .name = "MultiMedia28 Output Channel7",
4484 .info = msm_pcm_channel_weight_info,
4485 .get = msm_pcm_channel_weight_get,
4486 .put = msm_pcm_channel_weight_put,
4487 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4488 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 6,}
4489 },
4490 {
4491 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4492 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4493 .name = "MultiMedia28 Output Channel8",
4494 .info = msm_pcm_channel_weight_info,
4495 .get = msm_pcm_channel_weight_get,
4496 .put = msm_pcm_channel_weight_put,
4497 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4498 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 7,}
4499 },
4500 {
4501 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4502 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4503 .name = "MultiMedia28 Output Channel9",
4504 .info = msm_pcm_channel_weight_info,
4505 .get = msm_pcm_channel_weight_get,
4506 .put = msm_pcm_channel_weight_put,
4507 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4508 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 8,}
4509 },
4510 {
4511 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4512 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4513 .name = "MultiMedia28 Output Channel10",
4514 .info = msm_pcm_channel_weight_info,
4515 .get = msm_pcm_channel_weight_get,
4516 .put = msm_pcm_channel_weight_put,
4517 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4518 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 9,}
4519 },
4520 {
4521 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4522 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4523 .name = "MultiMedia28 Output Channel11",
4524 .info = msm_pcm_channel_weight_info,
4525 .get = msm_pcm_channel_weight_get,
4526 .put = msm_pcm_channel_weight_put,
4527 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4528 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 10,}
4529 },
4530 {
4531 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4532 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4533 .name = "MultiMedia28 Output Channel12",
4534 .info = msm_pcm_channel_weight_info,
4535 .get = msm_pcm_channel_weight_get,
4536 .put = msm_pcm_channel_weight_put,
4537 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4538 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 11,}
4539 },
4540 {
4541 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4542 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4543 .name = "MultiMedia28 Output Channel13",
4544 .info = msm_pcm_channel_weight_info,
4545 .get = msm_pcm_channel_weight_get,
4546 .put = msm_pcm_channel_weight_put,
4547 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4548 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 12,}
4549 },
4550 {
4551 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4552 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4553 .name = "MultiMedia28 Output Channel14",
4554 .info = msm_pcm_channel_weight_info,
4555 .get = msm_pcm_channel_weight_get,
4556 .put = msm_pcm_channel_weight_put,
4557 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4558 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 13,}
4559 },
4560 {
4561 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4562 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4563 .name = "MultiMedia29 Output Channel1",
4564 .info = msm_pcm_channel_weight_info,
4565 .get = msm_pcm_channel_weight_get,
4566 .put = msm_pcm_channel_weight_put,
4567 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4568 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 0,}
4569 },
4570 {
4571 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4572 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4573 .name = "MultiMedia29 Output Channel2",
4574 .info = msm_pcm_channel_weight_info,
4575 .get = msm_pcm_channel_weight_get,
4576 .put = msm_pcm_channel_weight_put,
4577 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4578 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 1, }
4579 },
4580 {
4581 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4582 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4583 .name = "MultiMedia29 Output Channel3",
4584 .info = msm_pcm_channel_weight_info,
4585 .get = msm_pcm_channel_weight_get,
4586 .put = msm_pcm_channel_weight_put,
4587 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4588 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 2,}
4589 },
4590 {
4591 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4592 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4593 .name = "MultiMedia29 Output Channel4",
4594 .info = msm_pcm_channel_weight_info,
4595 .get = msm_pcm_channel_weight_get,
4596 .put = msm_pcm_channel_weight_put,
4597 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4598 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 3,}
4599 },
4600 {
4601 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4602 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4603 .name = "MultiMedia29 Output Channel5",
4604 .info = msm_pcm_channel_weight_info,
4605 .get = msm_pcm_channel_weight_get,
4606 .put = msm_pcm_channel_weight_put,
4607 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4608 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 4,}
4609 },
4610 {
4611 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4612 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4613 .name = "MultiMedia29 Output Channel6",
4614 .info = msm_pcm_channel_weight_info,
4615 .get = msm_pcm_channel_weight_get,
4616 .put = msm_pcm_channel_weight_put,
4617 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4618 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 5,}
4619 },
4620 {
4621 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4622 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4623 .name = "MultiMedia29 Output Channel7",
4624 .info = msm_pcm_channel_weight_info,
4625 .get = msm_pcm_channel_weight_get,
4626 .put = msm_pcm_channel_weight_put,
4627 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4628 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 6,}
4629 },
4630 {
4631 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4632 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4633 .name = "MultiMedia29 Output Channel8",
4634 .info = msm_pcm_channel_weight_info,
4635 .get = msm_pcm_channel_weight_get,
4636 .put = msm_pcm_channel_weight_put,
4637 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4638 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 7,}
4639 },
4640 {
4641 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4642 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4643 .name = "MultiMedia29 Output Channel9",
4644 .info = msm_pcm_channel_weight_info,
4645 .get = msm_pcm_channel_weight_get,
4646 .put = msm_pcm_channel_weight_put,
4647 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4648 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 8,}
4649 },
4650 {
4651 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4652 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4653 .name = "MultiMedia29 Output Channel10",
4654 .info = msm_pcm_channel_weight_info,
4655 .get = msm_pcm_channel_weight_get,
4656 .put = msm_pcm_channel_weight_put,
4657 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4658 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 9,}
4659 },
4660 {
4661 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4662 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4663 .name = "MultiMedia29 Output Channel11",
4664 .info = msm_pcm_channel_weight_info,
4665 .get = msm_pcm_channel_weight_get,
4666 .put = msm_pcm_channel_weight_put,
4667 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4668 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 10,}
4669 },
4670 {
4671 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4672 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4673 .name = "MultiMedia29 Output Channel12",
4674 .info = msm_pcm_channel_weight_info,
4675 .get = msm_pcm_channel_weight_get,
4676 .put = msm_pcm_channel_weight_put,
4677 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4678 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 11,}
4679 },
4680 {
4681 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4682 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4683 .name = "MultiMedia29 Output Channel13",
4684 .info = msm_pcm_channel_weight_info,
4685 .get = msm_pcm_channel_weight_get,
4686 .put = msm_pcm_channel_weight_put,
4687 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4688 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 12,}
4689 },
4690 {
4691 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4692 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4693 .name = "MultiMedia29 Output Channel14",
4694 .info = msm_pcm_channel_weight_info,
4695 .get = msm_pcm_channel_weight_get,
4696 .put = msm_pcm_channel_weight_put,
4697 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4698 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 13,}
4699 },
4700 {
4701 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4702 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304703 .name = "MultiMedia30 Output Channel1",
4704 .info = msm_pcm_channel_weight_info,
4705 .get = msm_pcm_channel_weight_get,
4706 .put = msm_pcm_channel_weight_put,
4707 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4708 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 0,}
4709 },
4710 {
4711 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4712 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4713 .name = "MultiMedia30 Output Channel2",
4714 .info = msm_pcm_channel_weight_info,
4715 .get = msm_pcm_channel_weight_get,
4716 .put = msm_pcm_channel_weight_put,
4717 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4718 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 1, }
4719 },
4720 {
4721 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4722 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4723 .name = "MultiMedia30 Output Channel3",
4724 .info = msm_pcm_channel_weight_info,
4725 .get = msm_pcm_channel_weight_get,
4726 .put = msm_pcm_channel_weight_put,
4727 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4728 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 2,}
4729 },
4730 {
4731 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4732 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4733 .name = "MultiMedia30 Output Channel4",
4734 .info = msm_pcm_channel_weight_info,
4735 .get = msm_pcm_channel_weight_get,
4736 .put = msm_pcm_channel_weight_put,
4737 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4738 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 3,}
4739 },
4740 {
4741 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4742 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4743 .name = "MultiMedia30 Output Channel5",
4744 .info = msm_pcm_channel_weight_info,
4745 .get = msm_pcm_channel_weight_get,
4746 .put = msm_pcm_channel_weight_put,
4747 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4748 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 4,}
4749 },
4750 {
4751 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4752 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4753 .name = "MultiMedia30 Output Channel6",
4754 .info = msm_pcm_channel_weight_info,
4755 .get = msm_pcm_channel_weight_get,
4756 .put = msm_pcm_channel_weight_put,
4757 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4758 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 5,}
4759 },
4760 {
4761 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4762 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4763 .name = "MultiMedia30 Output Channel7",
4764 .info = msm_pcm_channel_weight_info,
4765 .get = msm_pcm_channel_weight_get,
4766 .put = msm_pcm_channel_weight_put,
4767 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4768 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 6,}
4769 },
4770 {
4771 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4772 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4773 .name = "MultiMedia30 Output Channel8",
4774 .info = msm_pcm_channel_weight_info,
4775 .get = msm_pcm_channel_weight_get,
4776 .put = msm_pcm_channel_weight_put,
4777 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4778 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 7,}
4779 },
4780 {
4781 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4782 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4783 .name = "MultiMedia30 Output Channel9",
4784 .info = msm_pcm_channel_weight_info,
4785 .get = msm_pcm_channel_weight_get,
4786 .put = msm_pcm_channel_weight_put,
4787 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4788 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 8,}
4789 },
4790 {
4791 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4792 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4793 .name = "MultiMedia30 Output Channel10",
4794 .info = msm_pcm_channel_weight_info,
4795 .get = msm_pcm_channel_weight_get,
4796 .put = msm_pcm_channel_weight_put,
4797 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4798 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 9,}
4799 },
4800 {
4801 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4802 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4803 .name = "MultiMedia30 Output Channel11",
4804 .info = msm_pcm_channel_weight_info,
4805 .get = msm_pcm_channel_weight_get,
4806 .put = msm_pcm_channel_weight_put,
4807 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4808 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 10,}
4809 },
4810 {
4811 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4812 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4813 .name = "MultiMedia30 Output Channel12",
4814 .info = msm_pcm_channel_weight_info,
4815 .get = msm_pcm_channel_weight_get,
4816 .put = msm_pcm_channel_weight_put,
4817 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4818 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 11,}
4819 },
4820 {
4821 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4822 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4823 .name = "MultiMedia30 Output Channel13",
4824 .info = msm_pcm_channel_weight_info,
4825 .get = msm_pcm_channel_weight_get,
4826 .put = msm_pcm_channel_weight_put,
4827 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4828 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 12,}
4829 },
4830 {
4831 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4832 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4833 .name = "MultiMedia30 Output Channel14",
4834 .info = msm_pcm_channel_weight_info,
4835 .get = msm_pcm_channel_weight_get,
4836 .put = msm_pcm_channel_weight_put,
4837 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4838 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 13,}
4839 },
4840 {
4841 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4842 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304843 .name = "MultiMedia1 Channel1",
4844 .info = msm_pcm_channel_input_be_info,
4845 .get = msm_pcm_channel_input_be_get,
4846 .put = msm_pcm_channel_input_be_put,
4847 .private_value = (unsigned long)&(mm1_ch1_enum)
4848 },
4849 {
4850 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4851 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4852 .name = "MultiMedia1 Channel2",
4853 .info = msm_pcm_channel_input_be_info,
4854 .get = msm_pcm_channel_input_be_get,
4855 .put = msm_pcm_channel_input_be_put,
4856 .private_value = (unsigned long)&(mm1_ch2_enum)
4857 },
4858 {
4859 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4860 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4861 .name = "MultiMedia1 Channel3",
4862 .info = msm_pcm_channel_input_be_info,
4863 .get = msm_pcm_channel_input_be_get,
4864 .put = msm_pcm_channel_input_be_put,
4865 .private_value = (unsigned long)&(mm1_ch3_enum)
4866 },
4867 {
4868 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4869 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4870 .name = "MultiMedia1 Channel4",
4871 .info = msm_pcm_channel_input_be_info,
4872 .get = msm_pcm_channel_input_be_get,
4873 .put = msm_pcm_channel_input_be_put,
4874 .private_value = (unsigned long)&(mm1_ch4_enum)
4875 },
4876 {
4877 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4878 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4879 .name = "MultiMedia1 Channel5",
4880 .info = msm_pcm_channel_input_be_info,
4881 .get = msm_pcm_channel_input_be_get,
4882 .put = msm_pcm_channel_input_be_put,
4883 .private_value = (unsigned long)&(mm1_ch5_enum)
4884 },
4885 {
4886 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4887 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4888 .name = "MultiMedia1 Channel6",
4889 .info = msm_pcm_channel_input_be_info,
4890 .get = msm_pcm_channel_input_be_get,
4891 .put = msm_pcm_channel_input_be_put,
4892 .private_value = (unsigned long)&(mm1_ch6_enum)
4893 },
4894 {
4895 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4896 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4897 .name = "MultiMedia1 Channel7",
4898 .info = msm_pcm_channel_input_be_info,
4899 .get = msm_pcm_channel_input_be_get,
4900 .put = msm_pcm_channel_input_be_put,
4901 .private_value = (unsigned long)&(mm1_ch7_enum)
4902 },
4903 {
4904 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4905 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4906 .name = "MultiMedia1 Channel8",
4907 .info = msm_pcm_channel_input_be_info,
4908 .get = msm_pcm_channel_input_be_get,
4909 .put = msm_pcm_channel_input_be_put,
4910 .private_value = (unsigned long)&(mm1_ch8_enum)
4911 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304912 {
4913 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4914 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304915 .name = "MultiMedia18 Channel1",
4916 .info = msm_pcm_channel_input_be_info,
4917 .get = msm_pcm_channel_input_be_get,
4918 .put = msm_pcm_channel_input_be_put,
4919 .private_value = (unsigned long)&(mm18_ch1_enum)
4920 },
4921 {
4922 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4923 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4924 .name = "MultiMedia18 Channel2",
4925 .info = msm_pcm_channel_input_be_info,
4926 .get = msm_pcm_channel_input_be_get,
4927 .put = msm_pcm_channel_input_be_put,
4928 .private_value = (unsigned long)&(mm18_ch2_enum)
4929 },
4930 {
4931 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4932 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4933 .name = "MultiMedia19 Channel1",
4934 .info = msm_pcm_channel_input_be_info,
4935 .get = msm_pcm_channel_input_be_get,
4936 .put = msm_pcm_channel_input_be_put,
4937 .private_value = (unsigned long)&(mm19_ch1_enum)
4938 },
4939 {
4940 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4941 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4942 .name = "MultiMedia19 Channel2",
4943 .info = msm_pcm_channel_input_be_info,
4944 .get = msm_pcm_channel_input_be_get,
4945 .put = msm_pcm_channel_input_be_put,
4946 .private_value = (unsigned long)&(mm19_ch2_enum)
4947 },
4948 {
4949 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4950 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4951 .name = "MultiMedia28 Channel1",
4952 .info = msm_pcm_channel_input_be_info,
4953 .get = msm_pcm_channel_input_be_get,
4954 .put = msm_pcm_channel_input_be_put,
4955 .private_value = (unsigned long)&(mm28_ch1_enum)
4956 },
4957 {
4958 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4959 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4960 .name = "MultiMedia28 Channel2",
4961 .info = msm_pcm_channel_input_be_info,
4962 .get = msm_pcm_channel_input_be_get,
4963 .put = msm_pcm_channel_input_be_put,
4964 .private_value = (unsigned long)&(mm28_ch2_enum)
4965 },
4966 {
4967 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4968 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4969 .name = "MultiMedia29 Channel1",
4970 .info = msm_pcm_channel_input_be_info,
4971 .get = msm_pcm_channel_input_be_get,
4972 .put = msm_pcm_channel_input_be_put,
4973 .private_value = (unsigned long)&(mm29_ch1_enum)
4974 },
4975 {
4976 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4977 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4978 .name = "MultiMedia29 Channel2",
4979 .info = msm_pcm_channel_input_be_info,
4980 .get = msm_pcm_channel_input_be_get,
4981 .put = msm_pcm_channel_input_be_put,
4982 .private_value = (unsigned long)&(mm29_ch2_enum)
4983 },
4984 {
4985 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4986 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304987 .name = "MultiMedia30 Channel1",
4988 .info = msm_pcm_channel_input_be_info,
4989 .get = msm_pcm_channel_input_be_get,
4990 .put = msm_pcm_channel_input_be_put,
4991 .private_value = (unsigned long)&(mm30_ch1_enum)
4992 },
4993 {
4994 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4995 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4996 .name = "MultiMedia30 Channel2",
4997 .info = msm_pcm_channel_input_be_info,
4998 .get = msm_pcm_channel_input_be_get,
4999 .put = msm_pcm_channel_input_be_put,
5000 .private_value = (unsigned long)&(mm30_ch2_enum)
5001 },
5002 {
5003 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5004 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305005 .name = "MultiMedia1 Output Channel Map",
5006 .info = msm_pcm_channel_output_map_info,
5007 .get = msm_pcm_channel_output_map_get,
5008 .put = msm_pcm_channel_output_map_put,
5009 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5010 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
5011 },
5012 {
5013 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5014 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5015 .name = "MultiMedia2 Output Channel Map",
5016 .info = msm_pcm_channel_output_map_info,
5017 .get = msm_pcm_channel_output_map_get,
5018 .put = msm_pcm_channel_output_map_put,
5019 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5020 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
5021 },
5022 {
5023 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5024 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5025 .name = "MultiMedia3 Output Channel Map",
5026 .info = msm_pcm_channel_output_map_info,
5027 .get = msm_pcm_channel_output_map_get,
5028 .put = msm_pcm_channel_output_map_put,
5029 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5030 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
5031 },
5032 {
5033 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5034 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5035 .name = "MultiMedia4 Output Channel Map",
5036 .info = msm_pcm_channel_output_map_info,
5037 .get = msm_pcm_channel_output_map_get,
5038 .put = msm_pcm_channel_output_map_put,
5039 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5040 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
5041 },
5042 {
5043 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5044 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5045 .name = "MultiMedia5 Output Channel Map",
5046 .info = msm_pcm_channel_output_map_info,
5047 .get = msm_pcm_channel_output_map_get,
5048 .put = msm_pcm_channel_output_map_put,
5049 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5050 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
5051 },
5052 {
5053 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5054 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5055 .name = "MultiMedia6 Output Channel Map",
5056 .info = msm_pcm_channel_output_map_info,
5057 .get = msm_pcm_channel_output_map_get,
5058 .put = msm_pcm_channel_output_map_put,
5059 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5060 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
5061 },
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05305062 {
5063 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5064 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5065 .name = "MultiMedia18 Output Channel Map",
5066 .info = msm_pcm_channel_output_map_info,
5067 .get = msm_pcm_channel_output_map_get,
5068 .put = msm_pcm_channel_output_map_put,
5069 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5070 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18,}
5071 },
5072 {
5073 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5074 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5075 .name = "MultiMedia19 Output Channel Map",
5076 .info = msm_pcm_channel_output_map_info,
5077 .get = msm_pcm_channel_output_map_get,
5078 .put = msm_pcm_channel_output_map_put,
5079 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5080 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19,}
5081 },
5082 {
5083 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5084 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5085 .name = "MultiMedia28 Output Channel Map",
5086 .info = msm_pcm_channel_output_map_info,
5087 .get = msm_pcm_channel_output_map_get,
5088 .put = msm_pcm_channel_output_map_put,
5089 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5090 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28,}
5091 },
5092 {
5093 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5094 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5095 .name = "MultiMedia29 Output Channel Map",
5096 .info = msm_pcm_channel_output_map_info,
5097 .get = msm_pcm_channel_output_map_get,
5098 .put = msm_pcm_channel_output_map_put,
5099 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5100 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
5101 },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305102 {
5103 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5104 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5105 .name = "MultiMedia30 Output Channel Map",
5106 .info = msm_pcm_channel_output_map_info,
5107 .get = msm_pcm_channel_output_map_get,
5108 .put = msm_pcm_channel_output_map_put,
5109 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5110 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30,}
5111 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305113
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305114static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
5115 struct snd_ctl_elem_value *ucontrol)
5116{
5117 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
5118 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
5119 ucontrol->value.integer.value[0]);
5120 return 0;
5121}
5122
5123static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
5124 struct snd_ctl_elem_value *ucontrol)
5125{
5126 msm_ec_ref_ch = ucontrol->value.integer.value[0];
5127 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
5128 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
5129 return 0;
5130}
5131
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305132static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
5133 struct snd_ctl_elem_value *ucontrol)
5134{
5135 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
5136 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
5137 ucontrol->value.integer.value[0]);
5138 return 0;
5139}
5140
5141static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
5142 struct snd_ctl_elem_value *ucontrol)
5143{
5144 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
5145 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
5146 __func__, msm_ec_ref_ch_downmixed);
5147 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
5148 return 0;
5149}
5150
5151static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
5152 struct snd_ctl_elem_value *ucontrol)
5153{
5154 int i = 0, ret = 0;
5155 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
5156 int out_channel_idx = ((struct soc_multi_mixer_control *)
5157 kcontrol->private_value)->shift;
5158
5159 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
5160 weights[i] = ucontrol->value.integer.value[i];
5161
5162 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
5163 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
5164 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
5165 return ret;
5166}
5167
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305168static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305169 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
5170 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305171
5172static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
5173 struct snd_ctl_elem_value *ucontrol)
5174{
5175 switch (msm_ec_ref_bit_format) {
5176 case SNDRV_PCM_FORMAT_S24_LE:
5177 ucontrol->value.integer.value[0] = 2;
5178 break;
5179 case SNDRV_PCM_FORMAT_S16_LE:
5180 ucontrol->value.integer.value[0] = 1;
5181 break;
5182 default:
5183 ucontrol->value.integer.value[0] = 0;
5184 break;
5185 }
5186 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
5187 __func__, ucontrol->value.integer.value[0]);
5188 return 0;
5189}
5190
5191static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
5192 struct snd_ctl_elem_value *ucontrol)
5193{
5194 u16 bit_width = 0;
5195
5196 switch (ucontrol->value.integer.value[0]) {
5197 case 2:
5198 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
5199 break;
5200 case 1:
5201 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
5202 break;
5203 default:
5204 msm_ec_ref_bit_format = 0;
5205 break;
5206 }
5207
5208 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
5209 bit_width = 16;
5210 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
5211 bit_width = 24;
5212
5213 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
5214 __func__, msm_ec_ref_bit_format);
5215 adm_ec_ref_rx_bit_width(bit_width);
5216 return 0;
5217}
5218
5219static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
5220
5221static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
5222 struct snd_ctl_elem_value *ucontrol)
5223{
5224 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
5225 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
5226 __func__, ucontrol->value.integer.value[0]);
5227 return 0;
5228}
5229
5230static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
5231 struct snd_ctl_elem_value *ucontrol)
5232{
5233 switch (ucontrol->value.integer.value[0]) {
5234 case 0:
5235 msm_ec_ref_sampling_rate = 0;
5236 break;
5237 case 1:
5238 msm_ec_ref_sampling_rate = 8000;
5239 break;
5240 case 2:
5241 msm_ec_ref_sampling_rate = 16000;
5242 break;
5243 case 3:
5244 msm_ec_ref_sampling_rate = 32000;
5245 break;
5246 case 4:
5247 msm_ec_ref_sampling_rate = 44100;
5248 break;
5249 case 5:
5250 msm_ec_ref_sampling_rate = 48000;
5251 break;
5252 case 6:
5253 msm_ec_ref_sampling_rate = 96000;
5254 break;
5255 case 7:
5256 msm_ec_ref_sampling_rate = 192000;
5257 break;
5258 case 8:
5259 msm_ec_ref_sampling_rate = 384000;
5260 break;
5261 default:
5262 msm_ec_ref_sampling_rate = 48000;
5263 break;
5264 }
5265 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
5266 __func__, msm_ec_ref_sampling_rate);
5267 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
5268 return 0;
5269}
5270
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305271static int get_ec_ref_port_id(int value, int *index)
5272{
5273 int port_id;
5274
5275 switch (value) {
5276 case 0:
5277 *index = 0;
5278 port_id = AFE_PORT_INVALID;
5279 break;
5280 case 1:
5281 *index = 1;
5282 port_id = SLIMBUS_0_RX;
5283 break;
5284 case 2:
5285 *index = 2;
5286 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
5287 break;
5288 case 3:
5289 *index = 3;
5290 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5291 break;
5292 case 4:
5293 *index = 4;
5294 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5295 break;
5296 case 5:
5297 *index = 5;
5298 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5299 break;
5300 case 6:
5301 *index = 6;
5302 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5303 break;
5304 case 7:
5305 *index = 7;
5306 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
5307 break;
5308 case 9:
5309 *index = 9;
5310 port_id = SLIMBUS_5_RX;
5311 break;
5312 case 10:
5313 *index = 10;
5314 port_id = SLIMBUS_1_TX;
5315 break;
5316 case 11:
5317 *index = 11;
5318 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
5319 break;
5320 case 12:
5321 *index = 12;
5322 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
5323 break;
5324 case 13:
5325 *index = 13;
5326 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
5327 break;
5328 case 14:
5329 *index = 14;
5330 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
5331 break;
5332 case 15:
5333 *index = 15;
5334 port_id = SLIMBUS_6_RX;
5335 break;
5336 case 16:
5337 *index = 16;
5338 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
5339 break;
5340 case 17:
5341 *index = 17;
5342 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
5343 break;
5344 case 18:
5345 *index = 18;
5346 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
5347 break;
5348 case 19:
5349 *index = 19;
5350 port_id = AFE_PORT_ID_USB_RX;
5351 break;
5352 case 20:
5353 *index = 20;
5354 port_id = AFE_PORT_ID_INT0_MI2S_RX;
5355 break;
5356 case 21:
5357 *index = 21;
5358 port_id = AFE_PORT_ID_INT4_MI2S_RX;
5359 break;
5360 case 22:
5361 *index = 22;
5362 port_id = AFE_PORT_ID_INT3_MI2S_TX;
5363 break;
5364 case 23:
5365 *index = 23;
5366 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5367 break;
5368 case 24:
5369 *index = 24;
5370 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
5371 break;
5372 case 25:
5373 *index = 25;
5374 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
5375 break;
5376 case 26:
5377 *index = 26;
5378 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
5379 break;
5380 case 27:
5381 *index = 27;
5382 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
5383 break;
5384 case 28:
5385 *index = 28;
5386 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
5387 break;
5388 case 29:
5389 *index = 29;
5390 port_id = SLIMBUS_7_RX;
5391 break;
5392 case 30:
5393 *index = 30;
5394 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
5395 break;
5396 case 31:
5397 *index = 31;
5398 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
5399 break;
5400 case 32:
5401 *index = 32;
5402 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
5403 break;
5404 case 33:
5405 *index = 33;
5406 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
5407 break;
5408 case 34:
5409 *index = 34;
5410 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
5411 break;
5412 case 35:
5413 *index = 35;
5414 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
5415 break;
5416 case 36:
5417 *index = 36;
5418 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5419 break;
5420 default:
5421 *index = 0; /* NONE */
5422 pr_err("%s: Invalid value %d\n", __func__, value);
5423 port_id = AFE_PORT_INVALID;
5424 break;
5425 }
5426
5427 return port_id;
5428}
5429
5430static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5431 struct snd_ctl_elem_value *ucontrol)
5432{
5433 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5434 mutex_lock(&routing_lock);
5435 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5436 mutex_unlock(&routing_lock);
5437
5438 return 0;
5439}
5440
5441static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5442 struct snd_ctl_elem_value *ucontrol)
5443{
5444 int value = ucontrol->value.integer.value[0];
5445
5446 mutex_lock(&routing_lock);
5447 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5448 &afe_loopback_tx_port_index);
5449 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5450 __func__, afe_loopback_tx_port_index);
5451 mutex_unlock(&routing_lock);
5452
5453 return 0;
5454}
5455
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5457 "32000", "44100", "48000", "96000", "192000", "384000"};
5458
5459static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305460 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305461 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
5462 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
5463};
5464
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305465static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5466 "PRI_MI2S_TX", "SEC_MI2S_TX",
5467 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5468 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5469 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5470 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305471 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
Vignesh Kulothunganf86a3552019-07-11 15:46:25 -07005472 "DISPLAY_PORT1",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305473 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005474 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305475 "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 -07005476 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305477};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305478
5479static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5480 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5481};
5482
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305483static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5484 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5485 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5486 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5487 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5488 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5489 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5490 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5491 msm_route_ec_ref_params_enum[0],
5492 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5493 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5494 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5495 msm_ec_ref_chmixer_weights_put),
5496 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
5497 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5498 msm_ec_ref_chmixer_weights_put),
5499 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
5500 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5501 msm_ec_ref_chmixer_weights_put),
5502 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
5503 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5504 msm_ec_ref_chmixer_weights_put),
5505 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
5506 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5507 msm_ec_ref_chmixer_weights_put),
5508 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
5509 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5510 msm_ec_ref_chmixer_weights_put),
5511 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5512 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5513};
5514
5515static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5516 struct snd_ctl_elem_value *ucontrol)
5517{
5518 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5519 mutex_lock(&routing_lock);
5520 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5521 mutex_unlock(&routing_lock);
5522
5523 return 0;
5524}
5525
5526static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5527 struct snd_ctl_elem_value *ucontrol)
5528{
5529 int value = ucontrol->value.integer.value[0];
5530 struct snd_soc_dapm_widget *widget =
5531 snd_soc_dapm_kcontrol_widget(kcontrol);
5532 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5533 struct snd_soc_dapm_update *update = NULL;
5534
5535 mutex_lock(&routing_lock);
5536 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5537 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5538 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5539 __func__, msm_route_ec_ref_rx);
5540 mutex_unlock(&routing_lock);
5541
5542 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5543 msm_route_ec_ref_rx, e, update);
5544 return 0;
5545}
5546
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305547static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5548 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
5549 msm_route_ec_ref_rx_enum[0],
5550 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5551
5552static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
5553 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
5554 msm_route_ec_ref_rx_enum[0],
5555 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5556
5557static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
5558 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
5559 msm_route_ec_ref_rx_enum[0],
5560 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5561
5562static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
5563 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
5564 msm_route_ec_ref_rx_enum[0],
5565 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5566
5567static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
5568 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5569 msm_route_ec_ref_rx_enum[0],
5570 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5571
5572static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5573 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5574 msm_route_ec_ref_rx_enum[0],
5575 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5576
5577static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5578 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5579 msm_route_ec_ref_rx_enum[0],
5580 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5581
5582static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5583 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5584 msm_route_ec_ref_rx_enum[0],
5585 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5586
Asish Bhattacharya34504582017-08-08 12:55:01 +05305587static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5588 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5589 msm_route_ec_ref_rx_enum[0],
5590 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5591
Laxminath Kasam38070be2017-08-17 18:21:59 +05305592static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5593 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5594 msm_route_ec_ref_rx_enum[0],
5595 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5596
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305597static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5598 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
5599 msm_route_ec_ref_rx_enum[0],
5600 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5601
5602static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
5603 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5604 msm_route_ec_ref_rx_enum[0],
5605 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5606
5607static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5608 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5609 msm_route_ec_ref_rx_enum[0],
5610 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5611
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305612static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5613 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5614 msm_route_ec_ref_rx_enum[0],
5615 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5616
5617static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5618 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5619 msm_route_ec_ref_rx_enum[0],
5620 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5621
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305622static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5623 struct snd_ctl_elem_value *ucontrol)
5624{
5625 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5626
5627 mutex_lock(&routing_lock);
5628 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5629 mutex_unlock(&routing_lock);
5630 return 0;
5631}
5632
5633static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5634 struct snd_ctl_elem_value *ucontrol)
5635{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305636 struct snd_soc_dapm_widget *widget =
5637 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305638 int mux = ucontrol->value.enumerated.item[0];
5639 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5640 int ret = 1;
5641 bool state = true;
5642 uint16_t ext_ec_ref_port_id;
5643 struct snd_soc_dapm_update *update = NULL;
5644
5645 if (mux >= e->items) {
5646 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5647 return -EINVAL;
5648 }
5649
5650 mutex_lock(&routing_lock);
5651 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5652
5653 switch (msm_route_ext_ec_ref) {
5654 case EXT_EC_REF_PRI_MI2S_TX:
5655 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5656 break;
5657 case EXT_EC_REF_SEC_MI2S_TX:
5658 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5659 break;
5660 case EXT_EC_REF_TERT_MI2S_TX:
5661 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5662 break;
5663 case EXT_EC_REF_QUAT_MI2S_TX:
5664 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5665 break;
5666 case EXT_EC_REF_QUIN_MI2S_TX:
5667 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5668 break;
5669 case EXT_EC_REF_SLIM_1_TX:
5670 ext_ec_ref_port_id = SLIMBUS_1_TX;
5671 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005672 case EXT_EC_REF_SEC_TDM_TX:
5673 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5674 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305675 case EXT_EC_REF_NONE:
5676 default:
5677 ext_ec_ref_port_id = AFE_PORT_INVALID;
5678 state = false;
5679 break;
5680 }
5681
5682 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5683 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5684
5685 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5686 mutex_unlock(&routing_lock);
5687 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5688 update);
5689 } else {
5690 ret = -EINVAL;
5691 mutex_unlock(&routing_lock);
5692 }
5693 return ret;
5694}
5695
5696static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5697 "SEC_MI2S_TX", "TERT_MI2S_TX",
5698 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005699 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305700
5701static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5702 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5703};
5704
5705static const struct snd_kcontrol_new voc_ext_ec_mux =
5706 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5707 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5708
5709
5710static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005711 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5712 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305713 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005715 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5716 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305717 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005719 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5720 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305721 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005723 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5724 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305725 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005727 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5728 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305729 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005731 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5732 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305733 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005735 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5736 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305737 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005739 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5740 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305741 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005743 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5744 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305745 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005747 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5748 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305749 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005751 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5752 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305753 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005755 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5756 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305757 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005759 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5760 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305761 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005763 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5764 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305765 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005767 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5768 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305769 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005771 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5772 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305773 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005775 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5776 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305777 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005779 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5780 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305781 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005783 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5784 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305785 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5786 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305787 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5788 MSM_BACKEND_DAI_PRI_I2S_RX,
5789 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005791 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5792 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305793 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005795 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5796 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305797 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5798 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305799 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5800 MSM_BACKEND_DAI_PRI_I2S_RX,
5801 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5802 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305803};
5804
5805static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005806 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5807 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305808 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005810 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5811 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305812 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005814 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5815 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305816 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005818 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5819 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305820 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005822 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5823 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305824 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005826 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5827 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305828 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005830 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5831 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305832 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005834 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5835 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305836 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005838 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5839 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305840 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005842 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5843 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305844 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005846 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5847 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305848 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005850 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5851 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305852 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005854 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5855 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305856 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005858 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5859 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305860 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005862 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5863 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305864 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005866 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5867 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305868 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005870 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5871 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305872 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005874 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5875 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305876 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005878 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5879 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305880 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5881 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305882 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5883 MSM_BACKEND_DAI_SEC_I2S_RX,
5884 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005886 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5887 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305888 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005890 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5891 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305892 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5893 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305894 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5895 MSM_BACKEND_DAI_SEC_I2S_RX,
5896 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305898};
5899
Ralf Herzc8701f72018-06-20 11:37:35 +02005900static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005901 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005902 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305903 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005905 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005906 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305907 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005909 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005910 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305911 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005913 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005914 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305915 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005917 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005918 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305919 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005921 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005922 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305923 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005925 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005926 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305927 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005929 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005930 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305931 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005933 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005934 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305935 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005937 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005938 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305939 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005941 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005942 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305943 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005945 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005946 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305947 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005949 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005950 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305951 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005953 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005954 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305955 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005957 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005958 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305959 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005961 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005962 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305963 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005965 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005966 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305967 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005969 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005970 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305971 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005973 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005974 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305975 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305977 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5978 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5979 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005981 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005982 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305983 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005985 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005986 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5987 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5988 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305989 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5990 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5991 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5992 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02005993};
5994
5995static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
5996 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5997 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5998 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5999 msm_routing_put_audio_mixer),
6000 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6001 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6002 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6003 msm_routing_put_audio_mixer),
6004 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6005 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6006 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6007 msm_routing_put_audio_mixer),
6008 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6009 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6010 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6011 msm_routing_put_audio_mixer),
6012 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6013 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6014 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6015 msm_routing_put_audio_mixer),
6016 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6017 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6018 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6019 msm_routing_put_audio_mixer),
6020 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6021 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6022 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6023 msm_routing_put_audio_mixer),
6024 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6025 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6026 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6027 msm_routing_put_audio_mixer),
6028 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6030 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
6032 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6034 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
6036 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6038 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
6040 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6042 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
6044 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6046 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
6048 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6050 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
6052 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6054 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
6056 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6058 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
6060 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6062 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
6064 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6066 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
6068 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6070 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306072 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6074 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006076 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6078 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
6080 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306082 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306084 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6086 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306088};
6089
6090static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006091 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6092 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306093 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006095 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306097 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006099 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306101 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006103 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306105 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006107 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306109 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006111 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306113 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006115 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306117 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006119 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306121 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006123 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306125 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006127 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306129 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006131 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306133 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006135 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306137 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006139 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306141 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006143 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306145 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006147 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306149 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006151 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306153 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306155 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_SLIMBUS_2_RX,
6157 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306159};
6160
6161static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006162 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306164 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006166 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306168 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006170 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306172 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006174 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306176 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006178 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006182 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306184 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006186 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306188 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006190 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306192 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006194 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306196 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006198 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306200 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006202 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306204 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006206 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306208 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006210 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6211 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306212 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006214 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306216 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006218 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306220 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006222 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006226 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6227 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306228 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006230 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6231 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306232 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006234 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6235 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306236 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6237 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306238 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6239 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6240 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006242 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6243 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306244 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006246 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6247 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306248 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6249 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306250 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6252 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306254};
6255
6256static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006257 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006261 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306263 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006265 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306267 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006269 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306271 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006273 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306275 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006277 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306279 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006281 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306283 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006285 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306287 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006289 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306291 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006293 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6294 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306295 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006297 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6298 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306299 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006301 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6302 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306303 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006305 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306307 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006309 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306311 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006313 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306315 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006317 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306319 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006321 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306323 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006325 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306327 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006329 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306331 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306333 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6335 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006337 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6338 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306339 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006341 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6342 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306343 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6344 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306345 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6346 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6347 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6348 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306349};
6350
6351static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006352 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306354 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006356 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306358 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006360 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6361 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306362 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006364 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6365 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306366 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006368 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6369 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306370 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006372 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6373 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306374 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006376 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306378 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006380 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306382 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006384 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306386 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006388 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306390 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006392 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306394 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006396 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306398 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006400 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6401 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306402 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006404 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6405 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306406 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006408 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6409 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306410 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006412 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6413 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306414 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006416 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6417 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306418 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006420 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6421 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306422 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006424 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6425 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306426 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6427 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306428 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6429 MSM_BACKEND_DAI_MI2S_RX,
6430 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006432 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6433 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306434 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006436 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6437 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306438 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6439 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306440 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_MI2S_RX,
6442 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306444};
6445
6446static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006447 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306449 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006451 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306453 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006455 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306457 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006459 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306461 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006463 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306465 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006467 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306469 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006471 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6472 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306473 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006475 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6476 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306477 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006479 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306481 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006483 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306485 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006487 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6488 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306489 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006491 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6492 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306493 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006495 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6496 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306497 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006499 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6500 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306501 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006503 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6504 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306505 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006507 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6508 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306509 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006511 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6512 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306513 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006515 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6516 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306517 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006519 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6520 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306521 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6522 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306523 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6524 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6525 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006527 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6528 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306529 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006531 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6532 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306533 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6534 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306535 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6536 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6537 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6538 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539};
6540
6541static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006542 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306544 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006546 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306548 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006550 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306552 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006554 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306556 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006558 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6559 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306560 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006562 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6563 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306564 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006566 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6567 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306568 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006570 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6571 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306572 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006574 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6575 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306576 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006578 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6579 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306580 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006582 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6583 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306584 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006586 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6587 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306588 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006590 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6591 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306592 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006594 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6595 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306596 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006598 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6599 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306600 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006602 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6603 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306604 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006606 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6607 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306608 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006610 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6611 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306612 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006614 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6615 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306616 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6617 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306618 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6619 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6620 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006622 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6623 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306624 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006626 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6627 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306628 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6629 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306630 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6631 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6632 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6633 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306634
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306635};
6636
Karthikeyan Manic3700752019-03-11 18:33:53 -07006637static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6638 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6639 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6640 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6641 msm_routing_put_audio_mixer),
6642 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6643 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6644 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6645 msm_routing_put_audio_mixer),
6646 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6647 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6648 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6649 msm_routing_put_audio_mixer),
6650 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6651 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6652 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6653 msm_routing_put_audio_mixer),
6654 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6655 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6656 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6657 msm_routing_put_audio_mixer),
6658 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6659 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6660 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6661 msm_routing_put_audio_mixer),
6662 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6663 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6664 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6665 msm_routing_put_audio_mixer),
6666 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6667 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6668 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6669 msm_routing_put_audio_mixer),
6670 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6671 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6672 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6673 msm_routing_put_audio_mixer),
6674 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6675 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6676 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6677 msm_routing_put_audio_mixer),
6678 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6679 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6680 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6681 msm_routing_put_audio_mixer),
6682 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6683 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6684 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6685 msm_routing_put_audio_mixer),
6686 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6687 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6688 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6689 msm_routing_put_audio_mixer),
6690 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6691 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6692 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6693 msm_routing_put_audio_mixer),
6694 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6695 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6696 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6697 msm_routing_put_audio_mixer),
6698 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6699 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6700 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6701 msm_routing_put_audio_mixer),
6702 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6703 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6704 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6705 msm_routing_put_audio_mixer),
6706 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6707 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6708 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6709 msm_routing_put_audio_mixer),
6710 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6711 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6712 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6713 msm_routing_put_audio_mixer),
6714 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6715 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6716 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6717 msm_routing_put_audio_mixer),
6718 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6719 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6720 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6721 msm_routing_put_audio_mixer),
6722 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6723 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6724 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6725 msm_routing_put_audio_mixer),
6726
6727};
6728
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306729static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006730 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306732 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006734 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006738 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006742 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006746 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006750 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006754 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006758 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006762 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006766 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006770 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306798 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6800 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006802 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006806 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306808 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306810 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6812 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306814};
6815
6816static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006817 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
6821};
6822
6823static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006824 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6825 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306826 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006828 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6829 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306830 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006832 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6833 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306834 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006836 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6837 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306838 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006840 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6841 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306842 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006844 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6845 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006848 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6849 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306850 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006852 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6853 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306854 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006856 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6857 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306858 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006860 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6861 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306862 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006864 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6865 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306866 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006868 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6869 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306870 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006872 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6873 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306874 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006876 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6877 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306878 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006880 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6881 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306882 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006884 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6885 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306886 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006888 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306890 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006892 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306894 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006896 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306898 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306900 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6902 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006904 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306906 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006908 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306910 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306912 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6914 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306916};
6917
6918static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006919 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6920 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306921 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006923 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6924 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306925 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006927 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6928 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306929 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006931 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6932 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306933 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006935 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6936 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306937 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006939 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6940 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306941 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006943 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6944 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306945 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006947 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6948 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306949 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006951 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6952 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306953 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006955 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6956 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306957 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006959 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6960 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306961 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006963 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6964 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306965 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006967 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6968 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306969 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006971 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6972 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306973 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006975 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6976 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306977 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006979 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6980 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306981 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006983 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006987 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006991 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306993 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306995 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_PRI_MI2S_RX,
6997 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006999 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307001 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007003 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7004 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307005 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7006 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307007 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_PRI_MI2S_RX,
7009 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307011
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307012};
7013
7014static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007027 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007039 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307041 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007043 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7044 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307045 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007047 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307049 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007051 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307053 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007055 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7056 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307057 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007059 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7060 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307061 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007063 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7064 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307065 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007067 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7068 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307069 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007071 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7072 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307073 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007075 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7076 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307077 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7078 msm_routing_put_audio_mixer),
7079};
7080
7081static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007082 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307084 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007086 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7087 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307088 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007090 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7091 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307092 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007094 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7095 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307096 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007098 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7099 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307100 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007102 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7103 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307104 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007106 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7107 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307108 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007110 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7111 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307112 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007114 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7115 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307116 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007118 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7119 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307120 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007122 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7123 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307124 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007126 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7127 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307128 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007130 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7131 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307132 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007134 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7135 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307136 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007138 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7139 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307140 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007142 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7143 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307144 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7145 msm_routing_put_audio_mixer),
7146};
7147
7148static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007149 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307151 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007153 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307155 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007157 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307159 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007161 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307163 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007165 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7166 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307167 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007173 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7174 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307175 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007177 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7178 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307179 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007181 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7182 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307183 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007185 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7186 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307187 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007189 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7190 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307191 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007193 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7194 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307195 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007197 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7198 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307199 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007201 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7202 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307203 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007205 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7206 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307207 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007209 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7210 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307211 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007213 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7214 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307215 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007217 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7218 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307219 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007221 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7222 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307223 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7224 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307225 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7226 MSM_BACKEND_DAI_HDMI_RX,
7227 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007229 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7230 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307231 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007233 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7234 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307235 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7236 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307237 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7238 MSM_BACKEND_DAI_HDMI_RX,
7239 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7240 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241};
7242
7243static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007244 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7245 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307246 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007248 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7249 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307250 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007252 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7253 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307254 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007256 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7257 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307258 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007260 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7261 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307262 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007264 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7265 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307266 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007268 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7269 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307270 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007272 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7273 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307274 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007276 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7277 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307278 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007280 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7281 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307282 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007284 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7285 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307286 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007288 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7289 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307290 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007292 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7293 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307294 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007296 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7297 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307298 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007300 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7301 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307302 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007304 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7305 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307306 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7307 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307308 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7309 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7310 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7311 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312};
7313
Karthikeyan Mani57550082018-05-03 18:43:58 -07007314static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7315 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7316 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7317 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7318 msm_routing_put_audio_mixer),
7319 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7320 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7321 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7322 msm_routing_put_audio_mixer),
7323 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7324 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7325 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7326 msm_routing_put_audio_mixer),
7327 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7328 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7329 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7330 msm_routing_put_audio_mixer),
7331 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7332 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7333 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7334 msm_routing_put_audio_mixer),
7335 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7337 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7338 msm_routing_put_audio_mixer),
7339 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7340 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7341 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7342 msm_routing_put_audio_mixer),
7343 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7344 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7345 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7346 msm_routing_put_audio_mixer),
7347 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7348 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7349 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7350 msm_routing_put_audio_mixer),
7351 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7352 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7353 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7354 msm_routing_put_audio_mixer),
7355 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7356 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7357 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7358 msm_routing_put_audio_mixer),
7359 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7360 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7361 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7362 msm_routing_put_audio_mixer),
7363 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7364 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7365 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7366 msm_routing_put_audio_mixer),
7367 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7368 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7369 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7370 msm_routing_put_audio_mixer),
7371 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7372 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7373 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7374 msm_routing_put_audio_mixer),
7375 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7376 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7377 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7378 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307379 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7380 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7381 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7382 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007383};
7384
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307385 /* incall music delivery mixer */
7386static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007387 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7388 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307389 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007391 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7392 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307393 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007395 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7396 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307397 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007399 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7400 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307401 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7402 msm_routing_put_audio_mixer),
7403};
7404
7405static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007406 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007410 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007414 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007418 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307420 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
7422};
7423
7424static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
7441};
7442
7443static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307508 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7510 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307512};
7513
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307514static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7515 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7517 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
7519 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7521 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
7523 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7525 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
7527 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7529 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
7531 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7533 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
7535 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7537 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
7539 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7541 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
7543 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7545 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
7547 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7549 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
7551 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7553 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
7555 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7557 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
7559 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7561 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
7563 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7565 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
7567 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7569 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
7571 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7573 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
7575 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7577 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307579 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7581 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307583};
7584
7585static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7586 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7588 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
7590 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7592 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
7594 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7596 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
7598 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7600 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
7602 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7604 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
7606 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7608 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
7610 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7612 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
7614 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7616 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
7618 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7620 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
7622 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7624 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
7626 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7627 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7628 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7629 msm_routing_put_audio_mixer),
7630 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7631 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7632 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7633 msm_routing_put_audio_mixer),
7634 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7636 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
7638 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7640 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
7642 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7644 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
7646 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7647 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7648 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7649 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307650 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7652 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307654};
7655
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307656static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7657 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7659 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
7661 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7663 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
7665 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7667 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
7669 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7671 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
7673 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7675 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
7677 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7679 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
7681 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7683 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
7685 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7687 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
7689 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7691 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
7693 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7695 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
7697 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7699 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
7701 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7703 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
7705 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7707 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
7709 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7711 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
7713 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7715 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
7717 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7719 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307721 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7723 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307725};
7726
7727static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7728 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7730 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
7732 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7734 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
7736 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7738 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
7740 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7742 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
7744 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7746 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
7748 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7750 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
7752 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7754 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
7756 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7758 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
7760 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7762 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
7764 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7766 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
7768 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7769 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7770 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7771 msm_routing_put_audio_mixer),
7772 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7773 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7774 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7775 msm_routing_put_audio_mixer),
7776 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7777 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7778 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7779 msm_routing_put_audio_mixer),
7780 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7781 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7782 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7783 msm_routing_put_audio_mixer),
7784 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7785 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7786 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7787 msm_routing_put_audio_mixer),
7788 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7789 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7790 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7791 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307792 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7793 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7794 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7795 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307796};
7797
7798static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
7799 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7801 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
7803 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7805 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
7807 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7809 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
7811 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7813 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
7815 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7817 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
7819 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7821 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
7823 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7825 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
7827 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7829 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
7831 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7833 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
7835 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7837 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
7839 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7840 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7841 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7842 msm_routing_put_audio_mixer),
7843 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7844 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7845 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7846 msm_routing_put_audio_mixer),
7847 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7848 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7849 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7850 msm_routing_put_audio_mixer),
7851 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7852 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7853 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7854 msm_routing_put_audio_mixer),
7855 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7856 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7857 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7858 msm_routing_put_audio_mixer),
7859 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7860 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7861 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7862 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307863 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7865 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307867};
7868
7869static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
7870 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7872 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
7874 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7876 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
7878 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7880 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
7882 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7884 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
7886 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7888 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
7890 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7892 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
7894 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7896 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
7898 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7900 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
7902 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7904 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
7906 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7907 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7909 msm_routing_put_audio_mixer),
7910 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7911 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7912 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7913 msm_routing_put_audio_mixer),
7914 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7915 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7916 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7917 msm_routing_put_audio_mixer),
7918 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7919 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7920 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7921 msm_routing_put_audio_mixer),
7922 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7923 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7924 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7925 msm_routing_put_audio_mixer),
7926 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7927 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7928 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7929 msm_routing_put_audio_mixer),
7930 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7931 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7932 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7933 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307934 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7935 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7936 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7937 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307938};
7939
7940static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
7941 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7943 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
7945 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7947 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
7949 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7951 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
7953 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7955 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
7957 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7959 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
7961 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7963 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
7965 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7967 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
7969 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7971 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
7973 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7975 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
7977 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7978 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7979 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7980 msm_routing_put_audio_mixer),
7981 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7982 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7983 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7984 msm_routing_put_audio_mixer),
7985 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7986 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7987 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7988 msm_routing_put_audio_mixer),
7989 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7990 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7991 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7992 msm_routing_put_audio_mixer),
7993 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7994 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7995 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7996 msm_routing_put_audio_mixer),
7997 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7998 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7999 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8000 msm_routing_put_audio_mixer),
8001 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8002 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8003 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8004 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308005 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8006 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8007 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8008 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308009};
8010
8011static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
8012 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8014 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
8016 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8018 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
8020 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8022 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
8024 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8026 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
8028 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8030 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
8032 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8034 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
8036 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8038 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
8040 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8042 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
8044 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8046 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8047 msm_routing_put_audio_mixer),
8048 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8049 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8050 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8051 msm_routing_put_audio_mixer),
8052 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8053 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8054 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8055 msm_routing_put_audio_mixer),
8056 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8057 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8058 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8059 msm_routing_put_audio_mixer),
8060 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8061 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8062 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8063 msm_routing_put_audio_mixer),
8064 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8065 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8066 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8067 msm_routing_put_audio_mixer),
8068 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8069 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8070 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8071 msm_routing_put_audio_mixer),
8072 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8073 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8074 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8075 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308076 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8077 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8078 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8079 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308080};
8081
8082static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
8083 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8085 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
8087 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8089 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
8091 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8093 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
8095 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8097 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
8099 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8101 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
8103 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8105 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
8107 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8109 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
8111 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8113 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
8115 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8117 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
8119 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8121 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
8123 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8125 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
8127 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8129 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
8131 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8133 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
8135 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8137 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
8139 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8141 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
8143 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8145 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308147 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8149 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308151};
8152
8153static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
8154 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8156 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
8158 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8160 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
8162 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8164 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
8166 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8168 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
8170 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8172 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
8174 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8176 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
8178 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8180 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
8182 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8184 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
8186 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8187 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8188 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8189 msm_routing_put_audio_mixer),
8190 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8191 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8192 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8193 msm_routing_put_audio_mixer),
8194 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8195 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8196 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8197 msm_routing_put_audio_mixer),
8198 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8199 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8200 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8201 msm_routing_put_audio_mixer),
8202 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8203 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8204 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8205 msm_routing_put_audio_mixer),
8206 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8208 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8209 msm_routing_put_audio_mixer),
8210 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8211 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8212 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8213 msm_routing_put_audio_mixer),
8214 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8215 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8217 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308218 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8219 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8220 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8221 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308222};
8223
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308224static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008225 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308227 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008229 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308231 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008233 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308235 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008237 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308239 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008241 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308243 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008245 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308247 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008249 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308251 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008253 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308255 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008257 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8258 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308259 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008261 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8262 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308263 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008265 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8266 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308267 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008269 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8270 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308271 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008273 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8274 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308275 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008277 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8278 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308279 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008281 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8282 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308283 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008285 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8286 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308287 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8288 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308289 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8290 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8291 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8292 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308293};
8294
Surendar Karka3ef3d812018-09-28 18:52:35 +05308295static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8296 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8298 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
8300 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
8304 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8306 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
8308 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8310 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
8312 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8314 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
8316 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8318 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
8320 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8322 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
8324 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8326 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
8328 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8330 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
8332 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8333 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8334 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8335 msm_routing_put_audio_mixer),
8336 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8337 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8338 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8339 msm_routing_put_audio_mixer),
8340 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8341 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8342 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8343 msm_routing_put_audio_mixer),
8344 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8346 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8347 msm_routing_put_audio_mixer),
8348 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8350 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
8352 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8354 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
8356 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8358 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
8360 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8361 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8362 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8363 msm_routing_put_audio_mixer),
8364};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308365static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008366 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8367 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308368 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008370 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8371 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308372 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008374 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8375 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308376 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008378 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8379 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308380 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008382 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8383 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308384 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008386 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8387 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308388 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008390 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8391 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308392 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008394 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8395 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308396 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008398 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308400 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008402 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308404 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008418 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308420 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308430 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_USB_RX,
8432 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308434};
8435
8436static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008437 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8438 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308439 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008441 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8442 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308443 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008445 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8446 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308447 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008449 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8450 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308451 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008453 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8454 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008457 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8458 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308459 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008461 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8462 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308463 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008465 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308513 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8515 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308525 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8527 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308529};
8530
8531static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008532 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8533 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308534 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008536 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308538 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008540 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308542 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008544 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008556 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008560 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008564 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008568 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008572 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008576 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008580 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008584 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008588 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008592 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308596 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8598 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308600};
8601
8602static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008603 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8604 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308605 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008607 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8608 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308609 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008611 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8612 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008615 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8616 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308617 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008619 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8620 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308621 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008663 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008667 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008671 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308679 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_INT_FM_RX,
8681 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308691 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_INT_FM_RX,
8693 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695};
8696
8697static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308708 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008710 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008766 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308768 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008770 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8771 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308772 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8773 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308774 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8775 MSM_BACKEND_DAI_AFE_PCM_RX,
8776 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008778 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8779 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308780 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008782 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8783 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308784 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8785 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308786 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8787 MSM_BACKEND_DAI_AFE_PCM_RX,
8788 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8789 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308790};
8791
8792static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008809 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008837 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8838 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308839 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008841 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8842 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308843 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008845 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8846 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308847 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008849 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8850 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308851 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008853 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8854 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308855 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008857 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8858 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308859 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008861 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8862 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308863 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008865 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8866 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308867 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8868 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008869 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8870 MSM_BACKEND_DAI_AUXPCM_RX,
8871 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8872 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308873 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8874 MSM_BACKEND_DAI_AUXPCM_RX,
8875 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008877 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8878 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308879 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008881 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8882 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308883 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8884 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308885 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8886 MSM_BACKEND_DAI_AUXPCM_RX,
8887 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8888 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889};
8890
8891static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008908 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308910 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008912 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8913 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308914 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008916 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8917 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308918 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008920 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8921 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308922 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008924 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8925 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308926 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008928 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8929 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308930 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008932 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8933 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308934 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008936 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8937 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308938 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008940 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8941 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308942 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008944 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8945 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308946 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008948 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8949 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308950 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008952 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8953 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308954 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008956 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8957 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308958 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008960 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8961 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308962 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008964 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8965 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308966 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8967 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008968 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8969 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
8970 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8971 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308972 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8973 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
8974 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008976 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8977 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308978 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008980 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8981 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308982 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8983 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308984 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8985 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
8986 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8987 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308988};
8989
8990static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008991 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8992 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308993 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008995 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8996 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308997 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008999 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9000 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309001 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009003 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9004 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309005 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009007 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9008 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309009 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009011 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9012 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309013 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009015 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9016 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309017 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009019 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9020 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309021 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009023 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9024 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309025 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009027 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9028 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309029 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009031 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9032 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309033 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009035 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9036 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309037 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009039 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9040 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309041 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009043 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9044 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309045 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009047 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9048 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309049 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009051 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9052 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309053 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9054 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309055 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9056 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
9057 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9058 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309059};
9060
9061static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009062 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9063 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309064 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009066 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9067 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309068 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009070 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9071 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309072 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009074 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9075 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309076 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009078 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9079 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309080 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009082 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9083 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309084 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009086 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9087 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309088 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009090 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9091 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309092 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009094 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9095 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309096 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009098 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9099 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309100 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009102 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9103 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309104 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009106 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9107 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309108 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009110 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9111 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309112 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009114 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9115 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309116 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009118 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9119 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309120 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009122 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9123 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309124 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9125 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309126 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9127 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
9128 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9129 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309130};
9131
Rohit Kumara5077932017-09-10 22:05:05 +05309132static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009169 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309171 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009173 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9174 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309175 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009177 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9178 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309179 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009181 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9182 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309183 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009185 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9186 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309187 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009189 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9190 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309191 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009193 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9194 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309195 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9196 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309197 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9198 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
9199 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9200 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309201};
Karthikeyan Manic3700752019-03-11 18:33:53 -07009202
9203static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
9204 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9206 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
9208 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9210 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
9212 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9214 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
9216 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9218 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
9220 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9222 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
9224 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9226 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
9228 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9230 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
9232 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9234 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
9236 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9238 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
9240 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9241 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9242 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9243 msm_routing_put_audio_mixer),
9244 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9245 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9246 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9247 msm_routing_put_audio_mixer),
9248 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9249 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9250 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9251 msm_routing_put_audio_mixer),
9252 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9253 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9254 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9255 msm_routing_put_audio_mixer),
9256 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9257 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9258 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9259 msm_routing_put_audio_mixer),
9260 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9261 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9262 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9263 msm_routing_put_audio_mixer),
9264 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9265 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9266 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9267 msm_routing_put_audio_mixer),
9268 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9269 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9270 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9271 msm_routing_put_audio_mixer),
9272};
9273
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309274static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009283 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009291 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009295 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009299 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309301 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009303 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009307 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009311 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9312 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309313 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009315 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9316 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309317 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009319 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9320 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309321 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009323 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9324 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309325 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009327 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9328 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309329 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009331 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9332 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309333 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009335 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9336 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309337 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9338 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009339 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9340 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9341 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9342 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309343};
9344
9345static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009378 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009382 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009386 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009390 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009394 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009398 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009402 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309404 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009406 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309408 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009410 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9412 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309414};
9415
9416static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009421 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309423 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009425 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309427 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009429 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309431 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009433 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309435 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009437 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309439 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009441 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309443 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009445 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309447 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009449 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309451 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009453 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9454 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309455 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009457 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309459 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009461 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309463 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009465 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9466 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309467 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009469 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9470 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309471 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009473 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9474 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309475 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009477 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9478 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309479 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9480 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009481 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9482 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9483 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9484 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309485};
9486
9487static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009488 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309490 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009492 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309494 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009496 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309498 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009500 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9501 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309502 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009504 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309506 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009508 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309510 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009512 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309514 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009516 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9517 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309518 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009520 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9521 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309522 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009524 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9525 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309526 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009528 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9529 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309530 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009532 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9533 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309534 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009536 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9537 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309538 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009540 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9541 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309542 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009544 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9545 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309546 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009548 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9549 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309550 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9551 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009552 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9553 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9554 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9555 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309556};
9557
9558static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009567 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009571 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009583 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009587 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009595 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009599 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009603 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009607 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009611 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309613 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009615 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9616 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309617 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009619 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9620 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9622 msm_routing_put_audio_mixer),
9623};
9624
9625static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009626 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9627 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309628 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009630 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9631 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309632 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009634 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9635 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309636 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009638 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9639 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309640 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009642 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9643 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309644 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009646 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9647 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309648 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009650 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9651 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309652 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009654 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9655 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309656 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009658 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9659 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309660 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009662 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9663 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309664 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009666 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9667 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309668 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009670 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9671 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309672 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009674 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9675 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309676 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009678 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9679 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309680 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009682 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009686 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309688 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009690 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9691 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9692 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9693 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309694};
9695
9696static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009713 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309715 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009717 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309719 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009721 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309723 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009725 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309727 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009729 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309731 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009733 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309735 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009737 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009741 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309743 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009745 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309747 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009749 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309751 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009753 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309755 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009757 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309759 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009761 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_SEC_TDM_RX_1,
9763 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309765};
9766
9767static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009768 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009772 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309774 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009776 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309778 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009780 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009784 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309786 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009788 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309790 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009792 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309794 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009796 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009800 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309802 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009804 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309806 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009808 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309810 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009812 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309814 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009820 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309822 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009824 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309826 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009828 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309830 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009832 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_SEC_TDM_RX_2,
9834 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309836};
9837
9838static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009839 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309841 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009843 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309845 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009847 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309849 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009851 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309853 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009855 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309857 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009859 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309861 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009863 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009867 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309869 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009871 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309873 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009875 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309877 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009879 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309881 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009883 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309885 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009887 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309889 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009891 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309893 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009895 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309897 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009899 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309901 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9902 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009903 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_SEC_TDM_RX_3,
9905 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9906 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309907};
9908
9909static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009910 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309912 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009914 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9915 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309916 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009918 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9919 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309920 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009922 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9923 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309924 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009926 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9927 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309928 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009930 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9931 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309932 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009934 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309936 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009938 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309940 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009942 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309944 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009946 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309948 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009950 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309952 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009954 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309956 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009958 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309960 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009962 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309964 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009966 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309968 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009970 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9971 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309972 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9973 msm_routing_put_audio_mixer),
9974};
9975
9976static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009977 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9978 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309979 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009981 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9982 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309983 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009985 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9986 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309987 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010009 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010013 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010015 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010025 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010027 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010029 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010031 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010033 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010035 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010037 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010039 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010041 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10043 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010045};
10046
10047static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010048 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010050 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010052 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010056 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010058 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010060 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010062 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010064 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010066 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010068 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10069 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010070 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010072 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10073 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010074 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010076 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10077 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010078 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010084 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010086 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010088 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010092 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010094 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010096 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010098 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010100 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010102 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010104 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010106 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010108 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010110 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
10112};
10113
10114static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010115 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010117 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010119 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10120 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010121 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010123 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010125 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010127 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010129 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010131 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010133 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010135 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010137 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010139 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10140 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010141 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010143 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010145 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010151 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010155 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010157 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010159 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010161 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010163 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010165 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010167 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010169 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010171 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010175 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010177 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010179 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10181 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010183};
10184
10185static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010186 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010188 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010190 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010192 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010194 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10195 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010196 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010198 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10199 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010200 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010202 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10203 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010204 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010206 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10207 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010208 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010210 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10211 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010212 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010214 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10215 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010216 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010218 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10219 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010220 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010222 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10223 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010224 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010226 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010228 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010230 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010232 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010234 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010236 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010238 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010240 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010242 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010244 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010246 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010248 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010250 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10252 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010254};
10255
10256static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010257 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10258 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010261 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10262 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010263 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010265 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10266 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010267 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010269 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10270 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010271 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010273 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10274 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010275 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010277 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010279 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010281 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10282 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010283 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010285 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10286 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010287 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010289 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10290 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010291 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010293 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10294 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010295 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010297 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010299 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010301 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010303 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010305 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010307 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010309 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010311 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010313 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010315 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010317 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010319 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10320 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010321 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10323 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10324 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010325};
10326
10327static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010328 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10329 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010330 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010332 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10333 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010336 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10337 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010338 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010340 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10341 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010342 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010344 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10345 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010346 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010348 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10349 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010350 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010352 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10353 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010354 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010356 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10357 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010358 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010360 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10361 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010362 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010364 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10365 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010366 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010368 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10369 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010370 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010372 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10373 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010374 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010376 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10377 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010378 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010380 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10381 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010382 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010384 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10385 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010386 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010388 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10389 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010390 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10391 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010392 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10394 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010396};
10397
10398static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010399 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10400 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010401 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010403 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10404 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010407 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010409 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010411 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010413 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010415 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010417 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010419 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10420 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010421 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010423 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10424 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010425 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010427 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10428 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010429 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010431 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10432 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010433 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010435 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10436 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010437 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010439 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010441 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010443 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010445 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010447 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010449 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010451 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010453 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010455 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010457 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010459 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010461 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010463 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10464 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10466 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010467 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10469 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10470 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010471};
10472
10473static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010488 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010490 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010492 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010494 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010496 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010498 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010500 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010502 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010504 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010506 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10507 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010508 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010510 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010512 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010514 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010516 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010518 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10519 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010520 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010522 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010524 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010526 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010528 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010530 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010532 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010534 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010536 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
10538};
10539
10540static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010541 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010543 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010545 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010547 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010549 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010551 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010553 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010555 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010557 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010559 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010561 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010563 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010565 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010567 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010569 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010571 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010573 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10574 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010575 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010577 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10578 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010579 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010581 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10582 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010583 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010585 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10586 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010587 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010589 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10590 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010591 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010593 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10594 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010595 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010597 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10598 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010599 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010601 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010603 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010605 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010607 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10608 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010609 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10611 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10612 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010613};
10614
10615static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010616 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010618 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010620 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010622 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010624 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010626 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010628 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010630 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010632 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010636 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010638 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010640 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010642 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010644 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010646 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010648 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10649 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010650 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010652 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10653 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010654 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010656 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010658 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010660 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010662 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010664 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010668 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10669 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010670 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010672 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10673 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010674 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010676 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10677 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010678 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010680 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10681 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010682 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10683 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010684 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10685 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10686 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10687 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010688};
10689
10690static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010691 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010695 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010699 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010703 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010707 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010709 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010711 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010715 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010719 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010721 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010723 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010725 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010727 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010729 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010731 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010733 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010735 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010737 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010739 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010741 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010743 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010745 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010747 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010749 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010751 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010753 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010755 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10756 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010757 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10758 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010759 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
10761 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010763};
10764
Rohit Kumara5077932017-09-10 22:05:05 +053010765static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010766 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010768 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010770 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010772 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010774 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010776 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010778 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010780 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010782 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010784 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010786 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010788 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010790 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010792 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010794 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10795 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010796 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010798 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10799 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010800 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010802 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010804 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010806 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010808 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010810 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10811 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010812 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010814 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10815 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010816 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010818 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10819 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010820 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010822 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10823 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010824 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010826 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10827 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010828 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010830 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10831 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010832 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10833 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010834 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10835 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
10836 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10837 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053010838};
10839
10840static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010841 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10842 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010843 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010845 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10846 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010847 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010849 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10850 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010851 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010853 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10854 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010855 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010857 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10858 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010859 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010861 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10862 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010863 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010865 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10866 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010867 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010869 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10870 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010871 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010873 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10874 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010875 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010877 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10878 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010879 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010881 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10882 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010883 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010885 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10886 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010887 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010889 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10890 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010891 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010893 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10894 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010895 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010897 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10898 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010899 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010901 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10902 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010903 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10904 msm_routing_put_audio_mixer),
10905};
10906
10907static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010908 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10909 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010910 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010912 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10913 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010914 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010916 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10917 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010918 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010920 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10921 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010922 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010924 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010926 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010928 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10929 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010930 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010932 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10933 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010934 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010936 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010938 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010940 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10941 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010942 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010944 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10945 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010946 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010948 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10949 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010950 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010952 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10953 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010954 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010956 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10957 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010958 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010960 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10961 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010962 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010964 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10965 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010966 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010968 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10969 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010970 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010972 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10973 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010974 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10975 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010976 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10977 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
10978 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10979 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053010980};
10981
10982static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010983 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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_QUIN_TDM_RX_2,
11053 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11054 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011055};
11056
11057static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011058 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11059 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011060 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011062 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11063 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011064 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011066 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11067 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011068 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011070 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11071 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011072 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011074 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11075 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011076 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011078 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11079 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011080 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011082 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11083 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011084 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011086 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11087 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011088 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011090 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11091 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011092 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011094 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11095 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011096 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011098 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011100 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011102 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011104 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011106 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11107 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011108 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011110 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11111 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011112 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011114 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11115 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011116 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011118 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011120 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011122 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011124 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11125 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011126 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11127 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11128 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11129 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011130};
11131
Karthikeyan Manic3700752019-03-11 18:33:53 -070011132static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
11133 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11134 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11136 msm_routing_put_audio_mixer),
11137 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11138 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11139 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11140 msm_routing_put_audio_mixer),
11141 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11142 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11143 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11144 msm_routing_put_audio_mixer),
11145 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11146 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11147 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11148 msm_routing_put_audio_mixer),
11149 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11150 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11151 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11152 msm_routing_put_audio_mixer),
11153 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11154 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11155 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11156 msm_routing_put_audio_mixer),
11157 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11158 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11159 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11160 msm_routing_put_audio_mixer),
11161 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11163 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11164 msm_routing_put_audio_mixer),
11165 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11166 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11167 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
11169 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11170 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11171 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11172 msm_routing_put_audio_mixer),
11173 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11174 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11175 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11176 msm_routing_put_audio_mixer),
11177 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11178 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11179 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11180 msm_routing_put_audio_mixer),
11181 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11182 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11183 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11184 msm_routing_put_audio_mixer),
11185 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11186 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11187 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11188 msm_routing_put_audio_mixer),
11189 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11190 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11191 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11192 msm_routing_put_audio_mixer),
11193 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11194 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11195 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11196 msm_routing_put_audio_mixer),
11197 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11198 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11199 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11200 msm_routing_put_audio_mixer),
11201 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11202 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11203 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11204 msm_routing_put_audio_mixer),
11205};
11206
11207static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
11208 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
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_SEN_TDM_TX_0,
11270 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11271 msm_routing_put_audio_mixer),
11272};
11273
11274static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
11275 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11276 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11278 msm_routing_put_audio_mixer),
11279 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11280 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11281 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11282 msm_routing_put_audio_mixer),
11283 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11284 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11286 msm_routing_put_audio_mixer),
11287 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11288 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11289 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11290 msm_routing_put_audio_mixer),
11291 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11294 msm_routing_put_audio_mixer),
11295 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11297 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11298 msm_routing_put_audio_mixer),
11299 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11301 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
11303 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
11307 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
11311 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11313 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11314 msm_routing_put_audio_mixer),
11315 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11316 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11317 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11318 msm_routing_put_audio_mixer),
11319 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11320 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11321 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
11323 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11325 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
11327 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11329 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
11331 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11333 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
11335 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11337 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
11339 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11341 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
11343 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11345 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
11347};
11348
11349static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11350 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11351 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11352 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11353 msm_routing_put_audio_mixer),
11354 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11355 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11356 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11357 msm_routing_put_audio_mixer),
11358 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11359 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11360 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11361 msm_routing_put_audio_mixer),
11362 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11363 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11364 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11365 msm_routing_put_audio_mixer),
11366 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11367 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11368 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11369 msm_routing_put_audio_mixer),
11370 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11371 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11372 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11373 msm_routing_put_audio_mixer),
11374 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11375 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11376 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11377 msm_routing_put_audio_mixer),
11378 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11379 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11380 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11381 msm_routing_put_audio_mixer),
11382 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11383 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11384 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11385 msm_routing_put_audio_mixer),
11386 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11387 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11388 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11389 msm_routing_put_audio_mixer),
11390 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11391 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11392 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11393 msm_routing_put_audio_mixer),
11394 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11395 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11396 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11397 msm_routing_put_audio_mixer),
11398 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11399 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11400 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11401 msm_routing_put_audio_mixer),
11402 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11403 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11404 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11405 msm_routing_put_audio_mixer),
11406 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11407 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11408 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11409 msm_routing_put_audio_mixer),
11410 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11411 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11412 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11413 msm_routing_put_audio_mixer),
11414 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11415 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11416 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11417 msm_routing_put_audio_mixer),
11418 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11419 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11420 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11421 msm_routing_put_audio_mixer),
11422};
11423
11424static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
11425 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11426 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11427 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11428 msm_routing_put_audio_mixer),
11429 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11430 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11431 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11432 msm_routing_put_audio_mixer),
11433 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11434 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11435 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11436 msm_routing_put_audio_mixer),
11437 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11438 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11439 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11440 msm_routing_put_audio_mixer),
11441 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11442 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11443 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11444 msm_routing_put_audio_mixer),
11445 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11446 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11447 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11448 msm_routing_put_audio_mixer),
11449 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11450 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11451 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11452 msm_routing_put_audio_mixer),
11453 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11454 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11455 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11456 msm_routing_put_audio_mixer),
11457 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11458 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11459 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11460 msm_routing_put_audio_mixer),
11461 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11462 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11463 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11464 msm_routing_put_audio_mixer),
11465 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11467 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11468 msm_routing_put_audio_mixer),
11469 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11470 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11471 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11472 msm_routing_put_audio_mixer),
11473 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11475 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11476 msm_routing_put_audio_mixer),
11477 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11478 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11479 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11480 msm_routing_put_audio_mixer),
11481 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11482 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11483 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11484 msm_routing_put_audio_mixer),
11485 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11487 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
11489 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11491 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11492 msm_routing_put_audio_mixer),
11493 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11495 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11496 msm_routing_put_audio_mixer),
11497};
11498
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011499static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011500 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
11501 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011502 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011504 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11505 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011506 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011508 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11509 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011510 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011512 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11513 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011514 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011516 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11517 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011518 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011520 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11521 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011522 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011524 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11525 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011526 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011528 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11529 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011530 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011532 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11533 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011534 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11535 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011536 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11537 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11538 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011540 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11541 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011542 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011544 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11545 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011546 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011548 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11549 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011550 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011552 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11553 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011554 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011556 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11557 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011558 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11559 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011560 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
11561 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
11562 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011564 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11565 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011566 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011568 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11569 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011570 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011572 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11573 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011574 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011576 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11577 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011578 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011580 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11581 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011582 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011584 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
11585 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011586 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011588 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011590 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011592 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11593 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011594 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11595 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011596 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11597 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11598 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011600 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011602 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011604 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011606 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011608 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011610 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011612 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11613 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011614 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011616 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11617 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011618 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011620 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011622 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011624 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011626 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011628 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011630 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011632 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11633 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011634 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011636 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11637 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011638 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011640 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11641 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011642 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011644 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11645 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011646 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011648 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011650 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011652 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011654 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011656 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11657 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011658 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011660 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11661 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011662 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011664 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11665 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011666 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011668 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11669 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011670 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011672 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11673 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011674 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011676 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11677 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011678 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11679 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011680 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11681 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11682 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11683 msm_routing_put_audio_mixer),
11684 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11685 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11686 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11687 msm_routing_put_audio_mixer),
11688 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11689 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11690 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11691 msm_routing_put_audio_mixer),
11692 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11693 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11694 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011696 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11697 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011698 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011700 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11701 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011702 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011704 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11705 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011706 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11707 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011708 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11709 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11710 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11711 msm_routing_put_audio_mixer),
11712 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11713 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11714 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11715 msm_routing_put_audio_mixer),
11716 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11717 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11718 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11719 msm_routing_put_audio_mixer),
11720 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11721 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11722 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11723 msm_routing_put_audio_mixer),
11724 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11725 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11726 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11727 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011728 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11729 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11730 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11731 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011732 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11733 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11734 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11735 msm_routing_put_audio_mixer),
11736 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11737 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11738 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11739 msm_routing_put_audio_mixer),
11740 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11741 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11742 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11743 msm_routing_put_audio_mixer),
11744 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11745 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11746 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11747 msm_routing_put_audio_mixer),
11748 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11749 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11750 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11751 msm_routing_put_audio_mixer),
11752 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11753 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11754 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11755 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011756 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11757 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11758 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11759 msm_routing_put_audio_mixer),
11760 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11763 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011764 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11765 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11766 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11767 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011768 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11769 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11770 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11771 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011772};
11773
11774static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011775 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11776 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011777 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011779 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11780 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011781 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011783 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11784 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011785 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011787 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11788 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011789 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011791 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11792 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011793 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011795 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11796 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011797 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011799 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11800 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011801 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011803 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11804 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011805 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011807 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11808 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011809 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011811 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11812 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011813 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011815 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11816 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011817 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011819 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11820 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011821 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11822 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011823 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11824 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11825 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011827 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11828 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011829 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011831 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11832 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011833 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011835 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11836 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011837 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011839 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11840 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011841 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011843 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11844 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011845 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011847 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11848 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011849 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011851 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11852 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011853 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011855 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11856 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011857 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011859 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11860 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011861 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011863 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011865 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011867 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11868 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011869 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011871 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11872 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011873 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011875 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11876 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011877 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011879 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11880 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011881 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011883 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11884 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011885 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011887 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11888 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011889 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011891 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11892 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011893 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011895 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11896 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011897 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011899 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11900 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011901 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011903 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011905 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11906 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011907 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11909 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11910 msm_routing_put_audio_mixer),
11911 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11913 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11914 msm_routing_put_audio_mixer),
11915 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11917 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11918 msm_routing_put_audio_mixer),
11919 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11921 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011923 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11924 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011925 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011927 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11928 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011929 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11930 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011931 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11932 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11933 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11934 msm_routing_put_audio_mixer),
11935 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11936 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11937 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11938 msm_routing_put_audio_mixer),
11939 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11940 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11941 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11942 msm_routing_put_audio_mixer),
11943 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11944 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11945 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11946 msm_routing_put_audio_mixer),
11947 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11948 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11949 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11950 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011951 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11953 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11954 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11957 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11958 msm_routing_put_audio_mixer),
11959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11961 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11962 msm_routing_put_audio_mixer),
11963 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11964 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11965 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11966 msm_routing_put_audio_mixer),
11967 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11968 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11969 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11970 msm_routing_put_audio_mixer),
11971 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11972 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11973 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11974 msm_routing_put_audio_mixer),
11975 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11976 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11977 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11978 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011979 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11981 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11982 msm_routing_put_audio_mixer),
11983 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11984 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11985 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11986 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011987 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11988 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11989 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11990 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011991 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11993 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011995};
11996
11997static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011998 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11999 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012000 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12001 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012002 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12003 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12004 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012006 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12007 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012008 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012010 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12011 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012012 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012014 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12015 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012016 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012018 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12019 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012020 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012022 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12023 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012024 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012026 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12027 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012028 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012030 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12031 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012032 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012034 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12035 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012036 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012038 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12039 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012040 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12041 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012042 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12043 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12044 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012046 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12047 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012048 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012050 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12051 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012052 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012054 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12055 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012056 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012058 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12059 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012060 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012062 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12063 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012064 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012066 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12067 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012068 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012070 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012072 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012074 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012076 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012078 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12079 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012080 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012082 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012084 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012086 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12087 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012088 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012090 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12091 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012092 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012094 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12095 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012096 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012098 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012100 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012102 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012104 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012106 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12107 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012108 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012110 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012112 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012114 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012116 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012118 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012120 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012122 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012124 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012126 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012128 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012130 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12131 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012132 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012134 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12135 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012136 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012138 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12139 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012140 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12141 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012142 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12143 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12144 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12145 msm_routing_put_audio_mixer),
12146 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12147 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12148 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12149 msm_routing_put_audio_mixer),
12150 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12152 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12153 msm_routing_put_audio_mixer),
12154 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12155 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12156 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12157 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012158 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12159 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12160 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12161 msm_routing_put_audio_mixer),
12162 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12164 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12165 msm_routing_put_audio_mixer),
12166 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12167 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12168 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12169 msm_routing_put_audio_mixer),
12170 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12172 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12173 msm_routing_put_audio_mixer),
12174 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12175 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12176 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12177 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012178 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12180 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12181 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012182 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12183 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12184 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12185 msm_routing_put_audio_mixer),
12186 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12187 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12188 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12189 msm_routing_put_audio_mixer),
12190 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12191 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12192 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12193 msm_routing_put_audio_mixer),
12194 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12195 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12196 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12197 msm_routing_put_audio_mixer),
12198 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12199 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12200 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12201 msm_routing_put_audio_mixer),
12202 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12203 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12204 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12205 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012206 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12207 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12208 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12209 msm_routing_put_audio_mixer),
12210 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12211 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12212 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12213 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012214 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12215 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12216 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12217 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012218};
12219
12220static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012221 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12222 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012223 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12224 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012225 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12227 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012229 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012231 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012233 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012235 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012237 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12238 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012239 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012241 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12242 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012243 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012245 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12246 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012247 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012249 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12250 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012251 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012253 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12254 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012255 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012257 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12258 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012259 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012261 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12262 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012263 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012265 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12266 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012267 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012269 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12270 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012271 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012273 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12274 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012275 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012277 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12278 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012279 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012281 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12282 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012283 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012285 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12286 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012287 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012289 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12290 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012291 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012293 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12294 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012295 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012297 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12298 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012299 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012301 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012303 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012305 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012307 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012309 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012311 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012313 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012315 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012317 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012319 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012321 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012323 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012325 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12326 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012327 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012329 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12330 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012331 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12332 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012333 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12335 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12336 msm_routing_put_audio_mixer),
12337 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12338 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12339 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12340 msm_routing_put_audio_mixer),
12341 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12342 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12343 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12344 msm_routing_put_audio_mixer),
12345 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12346 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12347 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012349 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12350 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012351 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012353 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012355 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012357 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12358 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012359 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012361 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012363 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012365 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012367 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012369 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012371 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12372 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012373 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12375 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12376 msm_routing_put_audio_mixer),
12377 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12379 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12380 msm_routing_put_audio_mixer),
12381 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12383 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12384 msm_routing_put_audio_mixer),
12385 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12386 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12387 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12388 msm_routing_put_audio_mixer),
12389 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12390 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12391 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12392 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012393 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12395 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12396 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012397 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12399 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12400 msm_routing_put_audio_mixer),
12401 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12403 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12404 msm_routing_put_audio_mixer),
12405 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12407 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12408 msm_routing_put_audio_mixer),
12409 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12411 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12412 msm_routing_put_audio_mixer),
12413 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12414 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12415 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12416 msm_routing_put_audio_mixer),
12417 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12418 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12419 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12420 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012421 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12422 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12423 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12424 msm_routing_put_audio_mixer),
12425 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12426 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12427 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12428 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012429 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12430 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12431 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12432 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012433};
12434
12435static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012436 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12437 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012438 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12439 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012440 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12441 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12442 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012444 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12445 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012446 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012448 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12449 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012450 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012452 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12453 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012454 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012456 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12457 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012458 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012460 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12461 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012462 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012464 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12465 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012466 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012468 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12469 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012470 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012472 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12473 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012474 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012476 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012478 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12479 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012480 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12482 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012484 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012486 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012488 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12489 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012490 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012492 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12493 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012494 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012496 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12497 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012498 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012500 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12501 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012502 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012504 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012506 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012508 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012510 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012512 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12513 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012514 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012516 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12517 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012518 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012520 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12521 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012522 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012524 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012526 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012528 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12529 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012530 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012532 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12533 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012534 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012536 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12537 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012538 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012540 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12541 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012542 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012544 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012546 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012548 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012550 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012552 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012554 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012556 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12557 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012558 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012560 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012562 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012564 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012566 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012570 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012572 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012574 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012576 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012578 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12579 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012580 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12582 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12583 msm_routing_put_audio_mixer),
12584 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12586 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12587 msm_routing_put_audio_mixer),
12588 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12589 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12590 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12591 msm_routing_put_audio_mixer),
12592 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12593 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12594 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012596 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12597 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012598 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012600 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12601 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012602 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012604 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12605 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012610 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12615 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012616 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12618 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12619 msm_routing_put_audio_mixer),
12620 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12622 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12623 msm_routing_put_audio_mixer),
12624 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12626 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12627 msm_routing_put_audio_mixer),
12628 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12629 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12630 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12631 msm_routing_put_audio_mixer),
12632 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12633 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12634 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12635 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12638 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12639 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012640 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12641 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12642 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12643 msm_routing_put_audio_mixer),
12644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12646 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12647 msm_routing_put_audio_mixer),
12648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12650 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12651 msm_routing_put_audio_mixer),
12652 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12653 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12654 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12655 msm_routing_put_audio_mixer),
12656 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12657 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12658 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12659 msm_routing_put_audio_mixer),
12660 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12661 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12662 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12663 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012664 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12665 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12666 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12667 msm_routing_put_audio_mixer),
12668 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12669 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12670 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12671 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012672 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12673 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12674 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12675 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012676 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12677 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12678 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12679 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012680};
12681
12682static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012683 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012685 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012687 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012689 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12690 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012691 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12692 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12693 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012695 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012697 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012699 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12700 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012701 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012703 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12704 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012705 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012707 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12708 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012709 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012711 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12712 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012713 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012715 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012717 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012719 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12720 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012721 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12722 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012723 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12724 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12725 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012727 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12728 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012729 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012731 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12732 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012733 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012735 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12736 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012737 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012739 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12740 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012741 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012743 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12744 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012745 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012747 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12748 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012749 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012751 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12752 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012753 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012755 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12756 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012757 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012759 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12760 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012761 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012763 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12764 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012765 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012767 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12768 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012769 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012771 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12772 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012773 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012775 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012777 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012779 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12780 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012781 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012783 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12784 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012785 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012787 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12788 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012789 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012791 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12792 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012793 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012795 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012797 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012799 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12800 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012801 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012803 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012805 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012807 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012809 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012811 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012813 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012815 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12816 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012817 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012819 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12820 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012821 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12822 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012823 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12824 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12825 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12826 msm_routing_put_audio_mixer),
12827 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12828 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12829 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12830 msm_routing_put_audio_mixer),
12831 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12832 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12833 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12834 msm_routing_put_audio_mixer),
12835 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12836 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12837 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012839 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12840 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012841 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12842 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012843 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12844 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12845 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12846 msm_routing_put_audio_mixer),
12847 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12848 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12850 msm_routing_put_audio_mixer),
12851 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12853 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12854 msm_routing_put_audio_mixer),
12855 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12856 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12857 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12858 msm_routing_put_audio_mixer),
12859 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12860 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12861 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12862 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012863 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12865 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12866 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012867 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12868 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12869 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12870 msm_routing_put_audio_mixer),
12871 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12872 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12873 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12874 msm_routing_put_audio_mixer),
12875 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12876 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12877 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12878 msm_routing_put_audio_mixer),
12879 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12880 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12881 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12882 msm_routing_put_audio_mixer),
12883 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12884 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12885 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12886 msm_routing_put_audio_mixer),
12887 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12888 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12889 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12890 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012891 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12892 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12893 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12894 msm_routing_put_audio_mixer),
12895 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12896 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12897 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12898 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012899 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12900 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12901 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12902 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012903};
12904
12905static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012906 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012908 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12909 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012910 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12912 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012914 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12915 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012916 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012918 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12919 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012920 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012922 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12923 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012924 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012926 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012928 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012930 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12931 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012932 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012934 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12935 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012936 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012938 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12939 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012940 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012942 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12943 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012944 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012946 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12947 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012948 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012950 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12951 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012952 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012954 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12955 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012956 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012958 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12959 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012960 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012962 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12963 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012964 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012966 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012968 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012970 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12971 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012972 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012974 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12975 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012976 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012978 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12979 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012980 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012982 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12983 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012984 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012986 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12987 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012990 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12991 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012992 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012994 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12995 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012996 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012998 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12999 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013000 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013002 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13003 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013004 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013006 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013008 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013010 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13011 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013012 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013014 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13015 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013018 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13019 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013020 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013022 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13023 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013024 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013026 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13027 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013028 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013030 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13031 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013032 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013034 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013036 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013038 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13039 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013040 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13041 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013042 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13043 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13044 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13045 msm_routing_put_audio_mixer),
13046 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13047 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13048 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13049 msm_routing_put_audio_mixer),
13050 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13051 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13052 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13053 msm_routing_put_audio_mixer),
13054 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13056 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013058 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13059 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013060 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013062 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13063 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013064 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13065 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013066 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13068 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13069 msm_routing_put_audio_mixer),
13070 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13071 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13072 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13073 msm_routing_put_audio_mixer),
13074 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13075 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13076 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13077 msm_routing_put_audio_mixer),
13078 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13079 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13080 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13081 msm_routing_put_audio_mixer),
13082 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13084 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13085 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013086 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13087 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13088 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13089 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013090 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13091 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13092 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13093 msm_routing_put_audio_mixer),
13094 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13096 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13097 msm_routing_put_audio_mixer),
13098 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13099 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13100 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13101 msm_routing_put_audio_mixer),
13102 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13103 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13104 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13105 msm_routing_put_audio_mixer),
13106 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13107 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13108 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13109 msm_routing_put_audio_mixer),
13110 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13111 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13112 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13113 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013114 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13116 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13117 msm_routing_put_audio_mixer),
13118 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13120 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13121 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013122 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13124 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13125 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013126 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13127 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13128 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13129 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013130};
13131
Asish Bhattacharya34504582017-08-08 12:55:01 +053013132static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013133 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13134 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013135 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13136 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013137 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13138 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13139 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013141 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13142 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013143 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013145 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13146 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013147 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013149 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13150 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013151 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013153 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013155 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013157 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013159 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013161 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13162 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013163 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013165 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013167 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013169 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013171 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013173 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13174 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013175 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013177 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013179 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013181 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013183 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013185 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13186 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013187 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013189 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13190 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013191 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013193 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013195 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013197 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13198 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013199 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013201 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13202 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013203 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013205 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013207 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013211 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013215 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013219 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013221 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013223 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013227 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013229 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013231 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013235 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013237 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013239 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013241 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013243 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013245 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013247 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013249 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13250 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013251 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013253 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013255 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013257 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013259 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013261 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013263 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013265 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013267 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013269 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013271 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013273 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013275 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13276 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013277 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13278 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13279 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13280 msm_routing_put_audio_mixer),
13281 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13282 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13283 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13284 msm_routing_put_audio_mixer),
13285 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13286 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13287 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13288 msm_routing_put_audio_mixer),
13289 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13290 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13291 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13292 msm_routing_put_audio_mixer),
13293 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13294 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13295 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13296 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013297 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13298 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13299 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13300 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013301 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13302 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13303 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13304 msm_routing_get_audio_mixer,
13305 msm_routing_put_audio_mixer),
13306 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13307 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13308 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13309 msm_routing_get_audio_mixer,
13310 msm_routing_put_audio_mixer),
13311 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13313 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13314 msm_routing_get_audio_mixer,
13315 msm_routing_put_audio_mixer),
13316 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13317 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13318 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13319 msm_routing_get_audio_mixer,
13320 msm_routing_put_audio_mixer),
13321 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13322 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13323 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13324 msm_routing_get_audio_mixer,
13325 msm_routing_put_audio_mixer),
13326 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13327 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13328 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13329 msm_routing_get_audio_mixer,
13330 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013331 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13332 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13333 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13334 msm_routing_put_audio_mixer),
13335 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13336 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13337 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13338 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013339 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13341 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13342 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013343 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13345 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13346 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013347};
13348
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013349static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013350 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13351 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013352 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13353 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013354 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13355 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13356 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013358 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13359 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013360 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013362 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13363 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013364 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013366 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13367 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013368 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013370 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13371 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013372 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013374 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13375 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013376 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013378 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13379 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013380 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013382 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13383 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013384 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013386 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13387 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013388 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013390 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13391 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013392 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013394 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013396 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013400 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013402 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013404 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013406 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013408 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013410 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013412 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013414 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13415 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013416 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013418 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13419 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013420 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013422 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13423 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013424 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013426 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13427 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013428 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013430 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13431 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013432 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13433 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013434 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13435 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13436 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13437 msm_routing_put_audio_mixer),
13438 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13439 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13441 msm_routing_put_audio_mixer),
13442 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13443 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13444 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13445 msm_routing_put_audio_mixer),
13446 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13448 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13449 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013450 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13451 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13452 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13453 msm_routing_put_audio_mixer),
13454 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13455 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13456 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13457 msm_routing_put_audio_mixer),
13458 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13460 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13461 msm_routing_put_audio_mixer),
13462 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13464 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13465 msm_routing_put_audio_mixer),
13466 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13467 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13468 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13469 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013470 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13471 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13472 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13473 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013474 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13475 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13476 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13477 msm_routing_put_audio_mixer),
13478 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13479 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13480 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13481 msm_routing_put_audio_mixer),
13482 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13483 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13484 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13485 msm_routing_put_audio_mixer),
13486 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13487 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13488 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13489 msm_routing_put_audio_mixer),
13490 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13491 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13492 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13493 msm_routing_put_audio_mixer),
13494 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13496 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13497 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013498 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13499 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13500 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13501 msm_routing_put_audio_mixer),
13502 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13504 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13505 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013506 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13508 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13509 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013510};
13511
Laxminath Kasam38070be2017-08-17 18:21:59 +053013512static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013513 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13514 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013515 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13516 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013517 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13519 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013523 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013525 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013527 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013531 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013533 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013535 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013537 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013539 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013541 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013543 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013545 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013547 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013549 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070013551 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013553 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013555 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013557 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013559 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013561 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013563 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013565 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13566 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013567 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013569 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013571 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013573 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013575 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013577 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013579 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013581 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013583 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013585 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013587 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013589 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013591 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013593 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013595 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013597 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013599 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013601 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
13602 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013603 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013605 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13606 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013607 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013609 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013611 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013613 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13614 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013615 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013617 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013619 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13620 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013621 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13623 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13624 msm_routing_put_audio_mixer),
13625 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13627 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13628 msm_routing_put_audio_mixer),
13629 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13631 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13632 msm_routing_put_audio_mixer),
13633 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13634 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13635 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13636 msm_routing_put_audio_mixer),
13637 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13639 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13640 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013641 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13643 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13644 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013645 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13647 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13648 msm_routing_get_audio_mixer,
13649 msm_routing_put_audio_mixer),
13650 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13651 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13652 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13653 msm_routing_get_audio_mixer,
13654 msm_routing_put_audio_mixer),
13655 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13656 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13657 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13658 msm_routing_get_audio_mixer,
13659 msm_routing_put_audio_mixer),
13660 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13661 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13662 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13663 msm_routing_get_audio_mixer,
13664 msm_routing_put_audio_mixer),
13665 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13667 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13668 msm_routing_get_audio_mixer,
13669 msm_routing_put_audio_mixer),
13670 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13671 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13672 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13673 msm_routing_get_audio_mixer,
13674 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013675 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13677 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13678 msm_routing_put_audio_mixer),
13679 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13681 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13682 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013683 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13685 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13686 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013687 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13689 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13690 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053013691};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013692static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013693 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13694 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013695 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13696 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013697 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13699 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013701 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13702 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013703 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013705 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13706 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013707 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013709 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13710 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013711 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013713 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13714 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013715 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013717 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13718 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013719 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013721 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13722 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013723 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013725 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13726 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013727 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13728 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013729 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13730 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13731 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13732 msm_routing_put_audio_mixer),
13733 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13734 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
13735 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13736 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013737 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13738 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13739 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13740 msm_routing_put_audio_mixer),
13741 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13742 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13743 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13744 msm_routing_put_audio_mixer),
13745 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13746 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13747 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13748 msm_routing_put_audio_mixer),
13749 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13750 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13751 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13752 msm_routing_put_audio_mixer),
13753 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13754 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13755 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13756 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013757 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13758 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13759 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13760 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013761 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13762 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13763 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13764 msm_routing_get_audio_mixer,
13765 msm_routing_put_audio_mixer),
13766 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13768 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13769 msm_routing_get_audio_mixer,
13770 msm_routing_put_audio_mixer),
13771 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13773 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13774 msm_routing_get_audio_mixer,
13775 msm_routing_put_audio_mixer),
13776 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13778 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13779 msm_routing_get_audio_mixer,
13780 msm_routing_put_audio_mixer),
13781 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13782 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13783 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13784 msm_routing_get_audio_mixer,
13785 msm_routing_put_audio_mixer),
13786 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13788 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13789 msm_routing_get_audio_mixer,
13790 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013791 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13793 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13794 msm_routing_put_audio_mixer),
13795 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13797 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13798 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013799 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13800 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13801 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13802 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013803};
13804
13805static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013806 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013808 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13809 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013810 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13812 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013814 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013816 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013818 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013820 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13821 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013822 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
13824 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13825 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013826 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13828 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013832 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013836 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013838 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013840 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013842 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013844 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013848 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013850 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13851 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013852 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13853 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013854 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13856 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13857 msm_routing_put_audio_mixer),
13858 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13860 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13861 msm_routing_put_audio_mixer),
13862 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13863 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13864 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13865 msm_routing_put_audio_mixer),
13866 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13867 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13868 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13869 msm_routing_put_audio_mixer),
13870 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13871 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13872 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13873 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013874 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13876 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13877 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013878 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13879 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13880 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13881 msm_routing_get_audio_mixer,
13882 msm_routing_put_audio_mixer),
13883 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13884 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13885 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13886 msm_routing_get_audio_mixer,
13887 msm_routing_put_audio_mixer),
13888 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13889 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13890 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13891 msm_routing_get_audio_mixer,
13892 msm_routing_put_audio_mixer),
13893 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13894 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13895 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13896 msm_routing_get_audio_mixer,
13897 msm_routing_put_audio_mixer),
13898 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13900 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13901 msm_routing_get_audio_mixer,
13902 msm_routing_put_audio_mixer),
13903 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13905 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13906 msm_routing_get_audio_mixer,
13907 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013908 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13909 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13910 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13911 msm_routing_put_audio_mixer),
13912 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13913 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13914 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13915 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013916 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13917 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13918 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13919 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013920};
13921
13922static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013923 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13926 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013927 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13929 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013931 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13932 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013933 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013935 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13936 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013937 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013939 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013941 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013943 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013945 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013947 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013949 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013951 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013953 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013955 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013957 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13958 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010013959 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13960 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
13961 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13962 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013963 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13964 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13965 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13966 msm_routing_put_audio_mixer),
13967 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
13969 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13970 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013971 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13972 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13973 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13974 msm_routing_put_audio_mixer),
13975 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13976 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13977 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13978 msm_routing_put_audio_mixer),
13979 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13980 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13981 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13982 msm_routing_put_audio_mixer),
13983 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13984 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13985 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13986 msm_routing_put_audio_mixer),
13987 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13988 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13989 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13990 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013991 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13992 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13993 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13994 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013995 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13996 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13997 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
13998 msm_routing_get_audio_mixer,
13999 msm_routing_put_audio_mixer),
14000 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14002 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14003 msm_routing_get_audio_mixer,
14004 msm_routing_put_audio_mixer),
14005 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14006 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14007 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14008 msm_routing_get_audio_mixer,
14009 msm_routing_put_audio_mixer),
14010 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14011 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14012 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14013 msm_routing_get_audio_mixer,
14014 msm_routing_put_audio_mixer),
14015 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14016 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14017 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14018 msm_routing_get_audio_mixer,
14019 msm_routing_put_audio_mixer),
14020 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14022 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14023 msm_routing_get_audio_mixer,
14024 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014025 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14026 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14027 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14028 msm_routing_put_audio_mixer),
14029 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14030 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14031 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14032 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014033 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14034 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14035 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14036 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037};
14038
14039static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014040 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014044 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14045 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014046 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014048 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14049 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014050 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014052 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014054 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014056 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14057 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014058 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14059 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014060 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14062 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014064 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014066 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014068 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14069 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014070 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014072 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14073 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014074 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014076 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14077 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014078 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014080 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014082 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014084 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14085 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014086 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014088 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14089 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014090 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014092 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14093 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014094 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014096 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14097 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014098 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014100 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14101 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014102 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014104 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14105 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014106 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014108 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14109 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014110 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014112 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14113 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014114 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014116 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14117 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014118 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014120 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14121 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014122 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014124 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14125 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014126 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014128 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14129 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014130 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014132 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14133 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014134 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014136 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14137 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014138 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014140 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14141 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014142 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14143 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014144 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14145 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14146 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14147 msm_routing_put_audio_mixer),
14148 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14149 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14150 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14151 msm_routing_put_audio_mixer),
14152 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14153 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14154 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14155 msm_routing_put_audio_mixer),
14156 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14157 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14158 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14159 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014160 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14161 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14162 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14163 msm_routing_put_audio_mixer),
14164 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14165 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14166 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14167 msm_routing_put_audio_mixer),
14168 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14169 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14170 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14171 msm_routing_put_audio_mixer),
14172 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14173 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14174 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14175 msm_routing_put_audio_mixer),
14176 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14177 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14178 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14179 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014180 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14181 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14182 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14183 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014184 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14186 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14187 msm_routing_put_audio_mixer),
14188 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14189 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14190 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14191 msm_routing_put_audio_mixer),
14192 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14193 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14194 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14195 msm_routing_put_audio_mixer),
14196 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14198 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14199 msm_routing_put_audio_mixer),
14200 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14201 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14202 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14203 msm_routing_put_audio_mixer),
14204 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14205 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14206 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14207 msm_routing_put_audio_mixer),
14208 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14209 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14210 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14211 msm_routing_put_audio_mixer),
14212 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14213 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14214 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14215 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014216 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14217 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14218 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14219 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014220};
14221
14222static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14223 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_AUXPCM_TX,
14225 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14226 msm_routing_put_audio_mixer),
14227 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14228 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14229 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14230 msm_routing_put_audio_mixer),
14231 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14232 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14233 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14234 msm_routing_put_audio_mixer),
14235 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14236 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14237 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14238 msm_routing_put_audio_mixer),
14239 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14240 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14241 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14242 msm_routing_put_audio_mixer),
14243 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14244 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14245 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14246 msm_routing_put_audio_mixer),
14247 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14248 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14249 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14250 msm_routing_put_audio_mixer),
14251 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14253 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14254 msm_routing_put_audio_mixer),
14255 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14256 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14257 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14258 msm_routing_put_audio_mixer),
14259 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14260 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14261 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14262 msm_routing_put_audio_mixer),
14263 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14265 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14266 msm_routing_put_audio_mixer),
14267 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14268 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14269 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14270 msm_routing_put_audio_mixer),
14271 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14273 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14274 msm_routing_put_audio_mixer),
14275 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14276 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14277 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14278 msm_routing_put_audio_mixer),
14279 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14281 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14282 msm_routing_put_audio_mixer),
14283 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14284 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14285 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14286 msm_routing_put_audio_mixer),
14287 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14288 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14289 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14290 msm_routing_put_audio_mixer),
14291 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14292 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14293 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14294 msm_routing_put_audio_mixer),
14295 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14296 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14297 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14298 msm_routing_put_audio_mixer),
14299 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14300 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14301 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14302 msm_routing_put_audio_mixer),
14303 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14304 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14305 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14306 msm_routing_put_audio_mixer),
14307 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14308 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14309 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14310 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014311 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14312 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14313 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14314 msm_routing_put_audio_mixer),
14315 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14316 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14317 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14318 msm_routing_put_audio_mixer),
14319 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14320 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14321 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14322 msm_routing_put_audio_mixer),
14323 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14324 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14325 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14326 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014327 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014328 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14329 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014330 msm_routing_put_audio_mixer),
14331 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014332 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14333 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014334 msm_routing_put_audio_mixer),
14335 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014336 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14337 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014338 msm_routing_put_audio_mixer),
14339 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014340 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14341 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014342 msm_routing_put_audio_mixer),
14343 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014344 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14345 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014346 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014347 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14348 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14349 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14350 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014351 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014352 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14353 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14354 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014355 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014356 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14357 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14358 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014359 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014360 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14361 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14362 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014363 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014364 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14365 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14366 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014367 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014368 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14369 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14370 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14373 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14374 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014375 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14376 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014377 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014378 msm_routing_put_audio_mixer),
14379 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14380 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014381 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014382 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014383 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14384 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14385 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14386 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014387};
14388
Surendar Karkac1cde372018-08-14 18:56:24 +053014389static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
14390 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14391 MSM_BACKEND_DAI_SLIMBUS_0_TX,
14392 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14393 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014394 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14395 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14396 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14397 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014398 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14399 MSM_BACKEND_DAI_SLIMBUS_6_TX,
14400 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14401 msm_routing_put_audio_mixer),
14402 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14403 MSM_BACKEND_DAI_SLIMBUS_7_TX,
14404 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14405 msm_routing_put_audio_mixer),
14406 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14407 MSM_BACKEND_DAI_PRI_MI2S_TX,
14408 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14409 msm_routing_put_audio_mixer),
14410 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14411 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14412 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14413 msm_routing_put_audio_mixer),
14414 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14415 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14416 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14417 msm_routing_put_audio_mixer),
14418 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14419 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14420 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14421 msm_routing_put_audio_mixer),
14422 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14423 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
14424 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14425 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014426 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14427 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14428 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14429 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014430 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14431 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14432 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14433 msm_routing_put_audio_mixer),
14434 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14435 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14436 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14437 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014438 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14439 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14440 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14441 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014442 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14443 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14444 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14445 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014446};
14447
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014448static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014449 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14450 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014451 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14452 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014453 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14454 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14455 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014457 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014459 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014461 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14462 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014463 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014465 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14466 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014467 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014469 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14470 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014471 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014473 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14474 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014475 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014477 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14478 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014479 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014481 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14482 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014483 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14484 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014485 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14486 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14487 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14488 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014489 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14490 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14491 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14492 msm_routing_put_audio_mixer),
14493 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14494 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053014495 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080014496 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014497 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14498 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14499 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14500 msm_routing_put_audio_mixer),
14501 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14502 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14503 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14504 msm_routing_put_audio_mixer),
14505 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14507 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14508 msm_routing_put_audio_mixer),
14509 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14510 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14511 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14512 msm_routing_put_audio_mixer),
14513 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14514 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14515 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14516 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014517 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14518 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14519 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14520 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014521 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14522 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14523 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14524 msm_routing_get_audio_mixer,
14525 msm_routing_put_audio_mixer),
14526 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14527 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14528 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14529 msm_routing_get_audio_mixer,
14530 msm_routing_put_audio_mixer),
14531 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14532 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14533 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14534 msm_routing_get_audio_mixer,
14535 msm_routing_put_audio_mixer),
14536 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14537 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14538 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14539 msm_routing_get_audio_mixer,
14540 msm_routing_put_audio_mixer),
14541 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14542 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14543 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14544 msm_routing_get_audio_mixer,
14545 msm_routing_put_audio_mixer),
14546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14548 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14549 msm_routing_get_audio_mixer,
14550 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014551 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14552 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14553 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14554 msm_routing_put_audio_mixer),
14555 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14556 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14557 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14558 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014559 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14560 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14561 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14562 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014563};
14564
14565static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014566 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14567 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014568 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14569 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014570 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14571 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14572 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014574 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14575 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014576 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014578 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014580 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014582 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14583 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014584 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014586 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14587 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014588 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014590 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014592 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014594 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14595 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014596 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014598 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014600 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14601 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014602 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14603 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14604 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14605 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014606 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14607 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14608 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14609 msm_routing_put_audio_mixer),
14610 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14611 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14612 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14613 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014614 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14615 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14616 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14617 msm_routing_put_audio_mixer),
14618 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14620 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14621 msm_routing_put_audio_mixer),
14622 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14623 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14624 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14625 msm_routing_put_audio_mixer),
14626 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14627 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14628 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14629 msm_routing_put_audio_mixer),
14630 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14631 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14632 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14633 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014634 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14635 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14636 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14637 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014638 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14639 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14640 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14641 msm_routing_get_audio_mixer,
14642 msm_routing_put_audio_mixer),
14643 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14644 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14645 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14646 msm_routing_get_audio_mixer,
14647 msm_routing_put_audio_mixer),
14648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14650 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14651 msm_routing_get_audio_mixer,
14652 msm_routing_put_audio_mixer),
14653 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14654 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14655 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14656 msm_routing_get_audio_mixer,
14657 msm_routing_put_audio_mixer),
14658 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14660 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14661 msm_routing_get_audio_mixer,
14662 msm_routing_put_audio_mixer),
14663 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14664 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14665 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14666 msm_routing_get_audio_mixer,
14667 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014668 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14669 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14670 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14671 msm_routing_put_audio_mixer),
14672 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14673 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14674 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14675 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014676 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14677 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14678 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14679 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014680};
14681
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053014682static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
14683 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14684 MSM_BACKEND_DAI_SLIMBUS_0_TX,
14685 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14686 msm_routing_put_audio_mixer),
14687 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14688 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14689 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14690 msm_routing_put_audio_mixer),
14691 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14692 MSM_BACKEND_DAI_PRI_MI2S_TX,
14693 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14694 msm_routing_put_audio_mixer),
14695 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14696 MSM_BACKEND_DAI_INT3_MI2S_TX,
14697 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14698 msm_routing_put_audio_mixer),
14699 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14700 MSM_BACKEND_DAI_INT_FM_TX,
14701 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14702 msm_routing_put_audio_mixer),
14703 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14704 MSM_BACKEND_DAI_INT_BT_SCO_TX,
14705 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14706 msm_routing_put_audio_mixer),
14707 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14708 MSM_BACKEND_DAI_AFE_PCM_TX,
14709 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14710 msm_routing_put_audio_mixer),
14711 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_INCALL_RECORD_RX,
14713 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14714 msm_routing_put_audio_mixer),
14715 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14716 MSM_BACKEND_DAI_INCALL_RECORD_TX,
14717 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14718 msm_routing_put_audio_mixer),
14719 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14720 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14721 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14722 msm_routing_put_audio_mixer),
14723 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14724 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14725 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14726 msm_routing_put_audio_mixer),
14727 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14728 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14729 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14730 msm_routing_put_audio_mixer),
14731 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14733 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14734 msm_routing_put_audio_mixer),
14735 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14736 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14737 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14738 msm_routing_put_audio_mixer),
14739 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14740 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14741 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14742 msm_routing_put_audio_mixer),
14743 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14744 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14745 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14746 msm_routing_put_audio_mixer),
14747 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14748 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14749 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14750 msm_routing_put_audio_mixer),
14751 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14752 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14753 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14754 msm_routing_get_audio_mixer,
14755 msm_routing_put_audio_mixer),
14756 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14758 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14759 msm_routing_get_audio_mixer,
14760 msm_routing_put_audio_mixer),
14761 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14763 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14764 msm_routing_get_audio_mixer,
14765 msm_routing_put_audio_mixer),
14766 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14768 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14769 msm_routing_get_audio_mixer,
14770 msm_routing_put_audio_mixer),
14771 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14772 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14773 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14774 msm_routing_get_audio_mixer,
14775 msm_routing_put_audio_mixer),
14776 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14778 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14779 msm_routing_get_audio_mixer,
14780 msm_routing_put_audio_mixer),
14781 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14783 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14784 msm_routing_put_audio_mixer),
14785 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14787 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14788 msm_routing_put_audio_mixer),
14789 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14791 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14792 msm_routing_put_audio_mixer),
14793};
14794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014795static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014796 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014798 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14799 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014800 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14801 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014802 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14803 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014804 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014806 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14807 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014808 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14809 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014810 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14811 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014812 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14813 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014814 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14815 msm_routing_put_voice_mixer),
14816};
14817
14818static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014819 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14820 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14822 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014823 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14824 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014825 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14826 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014827 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14828 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014829 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14830 msm_routing_put_voice_mixer),
14831};
14832
14833static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14837 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014838 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14839 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
14840 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
14841 msm_routing_put_voice_mixer),
14842 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14843 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
14844 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
14845 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014846 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14847 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014848 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14849 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014850 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14851 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014852 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14853 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014854 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14855 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014856 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14857 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014858 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14859 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014860 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14861 msm_routing_put_voice_mixer),
14862};
14863
14864static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014865 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14866 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014867 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14868 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014869 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014871 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14872 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014873 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14874 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014875 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14876 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014877 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14878 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014879 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14880 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014881 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14882 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014883 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14884 msm_routing_put_voice_mixer),
14885};
14886
14887static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014888 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14889MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014890 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14891 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014892 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14893MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014894 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14895 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014896 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14897MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014898 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14899 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014900 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14901MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014902 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14903 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014904 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14905MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014906 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14907 msm_routing_put_voice_mixer),
14908};
14909
14910static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014911 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14912 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014913 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14914 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014915 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14916 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014917 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14918 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014919 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14920 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014921 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14922 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014923 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14924 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014925 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14926 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014927 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014929 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14930 msm_routing_put_voice_mixer),
14931};
14932
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014933static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014934 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14935MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014936 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014938 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14939MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014940 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14943MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014944 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14945 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014946 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14947MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014948 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14949 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014950 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14951MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014952 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14953 msm_routing_put_voice_mixer),
14954};
14955
Karthikeyan Mani57550082018-05-03 18:43:58 -070014956static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
14957 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14958 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14959 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14960 msm_routing_put_voice_mixer),
14961 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14962 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14963 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14964 msm_routing_put_voice_mixer),
14965 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14966 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14967 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14968 msm_routing_put_voice_mixer),
14969 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14970 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14971 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14972 msm_routing_put_voice_mixer),
14973 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14974 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14975 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14976 msm_routing_put_voice_mixer),
14977};
14978
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014979static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014980 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14981 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014982 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14983 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014984 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014986 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14987 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014988 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14989 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014990 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14991 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014992 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014994 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14995 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014996 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14997 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014998 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14999 msm_routing_put_voice_mixer),
15000};
15001
15002static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015003 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15004 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015005 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15006 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015007 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15008 MSM_BACKEND_DAI_MI2S_RX,
15009 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15010 msm_routing_put_voice_mixer),
15011 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15012 MSM_BACKEND_DAI_MI2S_RX,
15013 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15014 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015015 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015017 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15018 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015019 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15020 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015021 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15022 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015023 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15024 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015025 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15026 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015027 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15028 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015029 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15030 msm_routing_put_voice_mixer),
15031};
15032
15033static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015034 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015035 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015036 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15037 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015038 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15039 MSM_BACKEND_DAI_PRI_MI2S_RX,
15040 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15041 msm_routing_put_voice_mixer),
15042 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15043 MSM_BACKEND_DAI_PRI_MI2S_RX,
15044 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15045 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015046 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015047 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015048 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15049 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015050 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015051 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015052 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15053 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015054 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015055 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015056 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15057 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015058 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015059 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015060 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15061 msm_routing_put_voice_mixer),
15062};
15063
15064static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015065 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15066MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015067 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15068 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015069 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15070MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015071 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15072 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015073 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15074MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015075 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15076 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015077 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15078MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015079 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15080 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015081 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15082MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015083 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15084 msm_routing_put_voice_mixer),
15085};
15086
15087static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015088 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15089 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015090 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15091 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015092 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15093 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015094 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15095 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015096 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15097 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015098 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15099 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015100 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15101 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015102 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15103 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015104 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15105 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015106 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15107 msm_routing_put_voice_mixer),
15108};
15109
15110static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015111 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15112 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015113 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15114 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015115 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15116 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15117 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15118 msm_routing_put_voice_mixer),
15119 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15120 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15121 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15122 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015123 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15124 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015125 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15126 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015127 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15128 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015129 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15130 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015131 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15132 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015133 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15134 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015135 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15136 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015137 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15138 msm_routing_put_voice_mixer),
15139};
15140
15141static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015142 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015144 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15145 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015146 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15147 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15148 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15149 msm_routing_put_voice_mixer),
15150 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15151 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15152 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15153 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015154 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015156 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15157 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015158 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015160 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15161 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015162 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15163 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015164 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15165 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015166 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015168 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15169 msm_routing_put_voice_mixer),
15170};
15171
15172static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015173 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15174 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015175 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15176 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015177 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15178 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15179 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15180 msm_routing_put_voice_stub_mixer),
15181 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15182 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15183 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15184 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015185 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15186 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015187 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15188 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015189 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15190 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015191 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15192 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015193 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15194 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015195 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15196 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015197 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15198 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015199 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15200 msm_routing_put_voice_mixer),
15201};
15202
Karthikeyan Manic3700752019-03-11 18:33:53 -070015203static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
15204 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15205 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15206 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15207 msm_routing_put_voice_mixer),
15208 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15209 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15210 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15211 msm_routing_put_voice_mixer),
15212 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15213 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15214 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15215 msm_routing_put_voice_mixer),
15216 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15217 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15218 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15219 msm_routing_put_voice_mixer),
15220 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15221 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15222 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15223 msm_routing_put_voice_mixer),
15224};
15225
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015226static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015227 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15228 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015229 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15230 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015231 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15232 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015233 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15234 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015235 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15236 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015237 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15238 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015239 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15240 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015241 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15242 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015243 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15244 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015245 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15246 msm_routing_put_voice_mixer),
15247};
15248
15249static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015250 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15251 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015252 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15253 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015254 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15255 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015256 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15257 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015258 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15259 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015260 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15261 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015262 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15263 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015264 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15265 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015266 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15267 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015268 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15269 msm_routing_put_voice_mixer),
15270};
15271
15272static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015273 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15274MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015275 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15276 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015277 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15278MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015279 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15280 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015281 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15282MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015283 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15284 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015285 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15286MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015287 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15288 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015289 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15290MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015291 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15292 msm_routing_put_voice_mixer),
15293};
15294
15295static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015296 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15297MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015298 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15299 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015300 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15301MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015302 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15303 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015304 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15305MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015306 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15307 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015308 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15309MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015310 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15311 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015312 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15313MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015314 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15315 msm_routing_put_voice_mixer),
15316};
15317
15318static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015319 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15320MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015321 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15322 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015323 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15324MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015325 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15326 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015327 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15328MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015329 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15330 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015331 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15332MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015333 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15334 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015335 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15336MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015337 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15338 msm_routing_put_voice_mixer),
15339};
15340
Rohit Kumara5077932017-09-10 22:05:05 +053015341static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015342 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15343MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015344 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15345 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015346 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15347MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015348 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15349 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015350 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15351MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015352 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15353 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015354 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15355MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015356 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15357 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015358 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15359MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015360 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15361 msm_routing_put_voice_mixer),
15362};
15363
Karthikeyan Manic3700752019-03-11 18:33:53 -070015364static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
15365 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15366 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15367 msm_routing_put_voice_mixer),
15368 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15369 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15370 msm_routing_put_voice_mixer),
15371 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15372 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15373 msm_routing_put_voice_mixer),
15374 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15375 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15376 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15377 msm_routing_put_voice_mixer),
15378 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15379 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15380 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15381 msm_routing_put_voice_mixer),
15382};
15383
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015384static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015385 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015387 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15388 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015389 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015391 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15392 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015393 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15394 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015395 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15396 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015397 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015399 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15400 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015401 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15402 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015403 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15404 msm_routing_put_voice_mixer),
15405};
15406
15407static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015408 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15409MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015410 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15411 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015412 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15413MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015414 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15415 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015416 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15417MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015418 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15419 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015420 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15421MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015422 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15423 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015424 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15425MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015426 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15427 msm_routing_put_voice_mixer),
15428};
15429
15430static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015431 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15432 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015433 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15434 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015435 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15436 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015437 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15438 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015439 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15440 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015441 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15442 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015443 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15444 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015445 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15446 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015447 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15448 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015449 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15450 msm_routing_put_voice_mixer),
15451};
15452
15453static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015454 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15455 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
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),
15458};
15459
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015460static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
15461 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15462 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15463 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15464 msm_routing_put_voice_mixer),
15465 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15466 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15467 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15468 msm_routing_put_voice_mixer),
15469 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15470 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15471 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15472 msm_routing_put_voice_mixer),
15473 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15474 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15475 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15476 msm_routing_put_voice_mixer),
15477 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15478 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15479 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15480 msm_routing_put_voice_mixer),
15481};
15482
15483static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
15484 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15485 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15486 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15487 msm_routing_put_voice_mixer),
15488 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15489 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15490 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15491 msm_routing_put_voice_mixer),
15492 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15493 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15494 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15495 msm_routing_put_voice_mixer),
15496 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15497 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15498 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15499 msm_routing_put_voice_mixer),
15500 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15501 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15502 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15503 msm_routing_put_voice_mixer),
15504};
15505
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015506static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
15507 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15508 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15509 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15510 msm_routing_put_voice_mixer),
15511 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15512 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15513 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15514 msm_routing_put_voice_mixer),
15515 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15516 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15517 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15518 msm_routing_put_voice_mixer),
15519 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15520 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15521 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15522 msm_routing_put_voice_mixer),
15523 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15524 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15525 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15526 msm_routing_put_voice_mixer),
15527};
15528
15529static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
15530 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15531 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15532 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15533 msm_routing_put_voice_mixer),
15534 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15536 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15537 msm_routing_put_voice_mixer),
15538 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15540 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15541 msm_routing_put_voice_mixer),
15542 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15543 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15544 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15545 msm_routing_put_voice_mixer),
15546 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15547 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15548 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15549 msm_routing_put_voice_mixer),
15550};
15551
15552static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
15553 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15555 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15556 msm_routing_put_voice_mixer),
15557 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15558 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15559 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15560 msm_routing_put_voice_mixer),
15561 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15562 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15563 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15564 msm_routing_put_voice_mixer),
15565 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15566 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15567 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15568 msm_routing_put_voice_mixer),
15569 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15570 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15571 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15572 msm_routing_put_voice_mixer),
15573};
15574
15575static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
15576 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15577 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15578 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15579 msm_routing_put_voice_mixer),
15580 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15581 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15582 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15583 msm_routing_put_voice_mixer),
15584 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15585 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15586 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15587 msm_routing_put_voice_mixer),
15588 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15590 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15591 msm_routing_put_voice_mixer),
15592 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15593 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15594 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15595 msm_routing_put_voice_mixer),
15596};
15597
15598static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
15599 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15600 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15601 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15602 msm_routing_put_voice_mixer),
15603 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15605 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15606 msm_routing_put_voice_mixer),
15607 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15609 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15610 msm_routing_put_voice_mixer),
15611 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15613 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15614 msm_routing_put_voice_mixer),
15615 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15617 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15618 msm_routing_put_voice_mixer),
15619};
15620
15621static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
15622 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15623 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15624 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15625 msm_routing_put_voice_mixer),
15626 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15628 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15629 msm_routing_put_voice_mixer),
15630 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15631 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15632 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15633 msm_routing_put_voice_mixer),
15634 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15635 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15636 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15637 msm_routing_put_voice_mixer),
15638 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15639 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15640 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15641 msm_routing_put_voice_mixer),
15642};
15643
15644static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
15645 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15646 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15647 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15648 msm_routing_put_voice_mixer),
15649 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15650 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15651 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15652 msm_routing_put_voice_mixer),
15653 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15654 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15655 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15656 msm_routing_put_voice_mixer),
15657 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15658 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15659 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15660 msm_routing_put_voice_mixer),
15661 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15663 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15664 msm_routing_put_voice_mixer),
15665};
15666
15667static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
15668 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15669 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15670 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15671 msm_routing_put_voice_mixer),
15672 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15673 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15674 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15675 msm_routing_put_voice_mixer),
15676 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15678 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15679 msm_routing_put_voice_mixer),
15680 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15681 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15682 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15683 msm_routing_put_voice_mixer),
15684 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15685 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15686 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15687 msm_routing_put_voice_mixer),
15688};
15689
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053015690static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
15691 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15692 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15693 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15694 msm_routing_put_voice_mixer),
15695 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15696 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15697 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15698 msm_routing_put_voice_stub_mixer),
15699 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15700 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15701 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15702 msm_routing_put_voice_stub_mixer),
15703 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15704 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15705 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15706 msm_routing_put_voice_mixer),
15707 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15708 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15709 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15710 msm_routing_put_voice_mixer),
15711 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15712 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15713 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15714 msm_routing_put_voice_mixer),
15715 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15716 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15717 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15718 msm_routing_put_voice_mixer),
15719 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15720 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15721 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15722 msm_routing_put_voice_mixer),
15723};
15724
15725static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
15726 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15728 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15729 msm_routing_put_voice_mixer),
15730 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15732 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15733 msm_routing_put_voice_stub_mixer),
15734 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15735 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15736 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15737 msm_routing_put_voice_stub_mixer),
15738 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15739 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15740 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15741 msm_routing_put_voice_mixer),
15742 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15743 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15744 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15745 msm_routing_put_voice_mixer),
15746 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15747 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15748 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15749 msm_routing_put_voice_mixer),
15750 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15751 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15752 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15753 msm_routing_put_voice_mixer),
15754 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15756 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15757 msm_routing_put_voice_mixer),
15758};
15759
15760static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
15761 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15762 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15763 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15764 msm_routing_put_voice_mixer),
15765 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15766 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15767 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15768 msm_routing_put_voice_stub_mixer),
15769 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15771 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15772 msm_routing_put_voice_stub_mixer),
15773 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15774 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15775 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15776 msm_routing_put_voice_mixer),
15777 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15778 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15779 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15780 msm_routing_put_voice_mixer),
15781 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15782 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15783 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15784 msm_routing_put_voice_mixer),
15785 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15786 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15787 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15788 msm_routing_put_voice_mixer),
15789 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15790 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15791 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15792 msm_routing_put_voice_mixer),
15793};
15794
15795static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
15796 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15797 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15798 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15799 msm_routing_put_voice_mixer),
15800 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15801 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15802 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15803 msm_routing_put_voice_stub_mixer),
15804 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15806 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15807 msm_routing_put_voice_stub_mixer),
15808 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15809 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15810 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15811 msm_routing_put_voice_mixer),
15812 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15813 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15814 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15815 msm_routing_put_voice_mixer),
15816 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15817 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15818 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15819 msm_routing_put_voice_mixer),
15820 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15821 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15822 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15823 msm_routing_put_voice_mixer),
15824 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15825 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15826 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15827 msm_routing_put_voice_mixer),
15828};
15829
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015830static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015831 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15832 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015833 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15834 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015835 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15836 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015837 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15838 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015839};
15840
15841static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015842 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015844 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15845 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015846 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15847 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015848 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15849 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015850};
15851
15852static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015853 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15854 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015855 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15856 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15858 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015859 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15860 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015861};
15862
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015863static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015864 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
15865 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015866 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15867 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015868 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
15869 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015870 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15871 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015872 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015873 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15874 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015875 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015876 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15877 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015878 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
15880 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015881 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015882 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
15883 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015884 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015885 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15886 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015887 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015888 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15889 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015890 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015891 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15892 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015893 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053015894 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15895 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015896 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
15897 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15898 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015899 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015900 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
15901 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080015902 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
15904 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015905 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015906 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
15907 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015908 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015909 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
15910 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015911 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015912 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15913 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015914 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015915 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15916 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015917 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
15918 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015919 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15920 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015921 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080015922 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015923 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015924 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
15925 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
15926 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15927 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
15928 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
15929 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015930 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
15932 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015933 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
15934 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
15935 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
15938 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15939 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
15940 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
15941 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15942 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
15943 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
15944 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15945 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
15947 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15948 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
15949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
15950 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053015951 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
15952 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
15953 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15954 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
15955 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
15956 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070015957 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053015958 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
15959 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015960};
15961
15962static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015963 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
15964 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015965 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15966 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015967 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
15968 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015969 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15970 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015971 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015972 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15973 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015974 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015975 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15976 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015977 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015978 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
15979 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015981 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
15982 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015983 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015984 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15985 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015986 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015987 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15988 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015989 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015990 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15991 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015992 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053015993 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15994 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015995 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15997 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015998 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015999 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16000 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016001 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16003 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016004 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016005 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16006 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016007 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016008 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16009 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016010 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016011 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16012 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016013 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016014 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16015 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016016 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016017 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16018 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016019 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16020 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16021 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16022 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16023 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16024 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016025 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16026 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16027 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016028 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16030 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16031 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16032 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16033 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16034 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16035 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16036 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16037 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16038 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16039 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16040 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16041 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16042 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16043 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16045 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016046 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16048 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16049 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16050 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16051 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016052 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16053 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016054 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016055};
16056
16057static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016058 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016060 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16061 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016062 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16063 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016064 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16065 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016066 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016068 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16069 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016070 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16071 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016072 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16073 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016074 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016076 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16077 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016078 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016080 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16081 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016082 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16083 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016084 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16085 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016086 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16087 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016088 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16089 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016090 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16091 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016092 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16093 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016094 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16095 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016096 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16097 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016098 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16100 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16101 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016102 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16103 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016104 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16105 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016106 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16108 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16109 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016110 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16111 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016112 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16113 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016114 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016116 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016120 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016122 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
16123 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016124 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16125 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16127 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016128 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16129 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016130 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16131 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16132 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16133 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16134 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16135 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016136 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16138 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016139 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16140 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16141 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16142 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16143 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16144 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16145 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16146 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16147 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16148 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16149 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16150 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16151 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16152 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16153 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16154 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16155 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16156 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016157 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16158 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16159 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016160};
16161
16162static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016163 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16164 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016165 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16166 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016167 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16168 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016169 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16170 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016171 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016173 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16174 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016175 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16176 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016177 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16178 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016179 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16180 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016181 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16182 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016183 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16184 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016185 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16186 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016187 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016189 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16190 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016191 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016193 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16194 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016195 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16196 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016197 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16198 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016199 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16200 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016201 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16202 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016203 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16204 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016205 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16206 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016207 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16208 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016209 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16210 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016211 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16212 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016213 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16214 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016215 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16216 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016217 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16218 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016219 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16220 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16221 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16222 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016223 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16224 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016225 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16226 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016227 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16228 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016229 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16230 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016231 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16232 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016233 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16234 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016235 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16236 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016237 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16238 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016239 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016241 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16242 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016243 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16244 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16245 1, 0, msm_routing_get_voice_stub_mixer,
16246 msm_routing_put_voice_stub_mixer),
16247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16249 1, 0, msm_routing_get_voice_stub_mixer,
16250 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016251 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16252 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16253 1, 0, msm_routing_get_voice_stub_mixer,
16254 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016255 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16256 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16257 1, 0, msm_routing_get_voice_stub_mixer,
16258 msm_routing_put_voice_stub_mixer),
16259 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16260 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16261 1, 0, msm_routing_get_voice_stub_mixer,
16262 msm_routing_put_voice_stub_mixer),
16263 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16264 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16265 1, 0, msm_routing_get_voice_stub_mixer,
16266 msm_routing_put_voice_stub_mixer),
16267 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16268 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
16269 1, 0, msm_routing_get_voice_stub_mixer,
16270 msm_routing_put_voice_stub_mixer),
16271 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16272 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
16273 1, 0, msm_routing_get_voice_stub_mixer,
16274 msm_routing_put_voice_stub_mixer),
16275 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16276 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
16277 1, 0, msm_routing_get_voice_stub_mixer,
16278 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016279};
16280
16281static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016282 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16283 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016284 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16285 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016286 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16287 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016288 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16289 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016290 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16291 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016292 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16293 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016294 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016296 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16297 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016298 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16299 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016300 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16301 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016302 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16303 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016304 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16305 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016306 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16307 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016308 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16309 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016310 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016312 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16313 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016314 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16316 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16317 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016318 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16319 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016320 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16321 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016322 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16323 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016324 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16325 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016326 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16327 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016328 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16329 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016330 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16331 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016332 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16333 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016334 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16335 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016336 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16337 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070016338 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16339 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
16340 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16341 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016342 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16343 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016344 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16345 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016346 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16347 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016348 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16349 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016350 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16351 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16352 1, 0, msm_routing_get_voice_stub_mixer,
16353 msm_routing_put_voice_stub_mixer),
16354 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16355 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16356 1, 0, msm_routing_get_voice_stub_mixer,
16357 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016358 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16359 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16360 1, 0, msm_routing_get_voice_stub_mixer,
16361 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016362 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16363 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16364 1, 0, msm_routing_get_voice_stub_mixer,
16365 msm_routing_put_voice_stub_mixer),
16366 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16367 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16368 1, 0, msm_routing_get_voice_stub_mixer,
16369 msm_routing_put_voice_stub_mixer),
16370 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16371 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16372 1, 0, msm_routing_get_voice_stub_mixer,
16373 msm_routing_put_voice_stub_mixer),
16374 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16375 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
16376 1, 0, msm_routing_get_voice_stub_mixer,
16377 msm_routing_put_voice_stub_mixer),
16378 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16379 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
16380 1, 0, msm_routing_get_voice_stub_mixer,
16381 msm_routing_put_voice_stub_mixer),
16382 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16383 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
16384 1, 0, msm_routing_get_voice_stub_mixer,
16385 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016386};
16387
16388static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016389 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16390 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016391 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16392 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016393 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16394 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016395 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16396 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016397 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16398 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016399 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16400 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016401 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16402 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016403 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16404 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016405 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16406 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016407 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16408 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016409 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16410 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016411 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16412 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016413 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16414 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016415 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16416 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016417 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016419 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16420 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016421 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16422 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16423 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16424 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016425 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16426 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016427 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16428 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016429 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16430 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016431 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16432 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016433 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16434 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016435 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16436 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016437 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16438 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016439 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16440 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016441 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16442 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016443 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16444 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016445 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16446 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016447 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16448 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016449 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16450 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016451 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16452 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016453 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16454 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16455 1, 0, msm_routing_get_voice_stub_mixer,
16456 msm_routing_put_voice_stub_mixer),
16457 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16458 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16459 1, 0, msm_routing_get_voice_stub_mixer,
16460 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016461 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16462 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16463 1, 0, msm_routing_get_voice_stub_mixer,
16464 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016465 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16466 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16467 1, 0, msm_routing_get_voice_stub_mixer,
16468 msm_routing_put_voice_stub_mixer),
16469 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16470 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16471 1, 0, msm_routing_get_voice_stub_mixer,
16472 msm_routing_put_voice_stub_mixer),
16473 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16474 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16475 1, 0, msm_routing_get_voice_stub_mixer,
16476 msm_routing_put_voice_stub_mixer),
16477 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16478 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
16479 1, 0, msm_routing_get_voice_stub_mixer,
16480 msm_routing_put_voice_stub_mixer),
16481 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16482 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
16483 1, 0, msm_routing_get_voice_stub_mixer,
16484 msm_routing_put_voice_stub_mixer),
16485 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16486 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
16487 1, 0, msm_routing_get_voice_stub_mixer,
16488 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016489};
16490
16491static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016492 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
16493 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016494 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16495 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016496 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
16497 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016498 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16499 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016500 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_INT_BT_SCO_TX,
16502 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016503 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016504 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
16505 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016506 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16507 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016508 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16509 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016510 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16511 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016512 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16513 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016514 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16515 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016516 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16517 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016518 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16519 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016520 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16521 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016522 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16523 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016524 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16525 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016526 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16527 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016528 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16529 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16530 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16531 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016532 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
16533 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016534 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16535 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016536 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
16537 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016538 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16539 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016540 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
16541 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016542 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16543 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016544 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
16545 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016546 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16547 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016548 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
16549 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016550 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16551 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016552 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
16553 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016554 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16555 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016556 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
16557 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016558 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16559 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016560 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16562 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16563 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16564 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16565 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016566 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16567 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16568 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016569 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16570 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16571 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16572 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16573 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16574 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16575 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16576 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16577 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16578 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
16579 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
16580 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16581 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
16582 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
16583 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16584 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
16585 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
16586 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016587};
16588
16589static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016590 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16591 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016592 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016594 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16595 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016596 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016598 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016600 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016602 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16603 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016604 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016606 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16607 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016608 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16609 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016610 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16611 MSM_BACKEND_DAI_INT0_MI2S_RX,
16612 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016614 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16615 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016616 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016618 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016620 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016622 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16623 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016624 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016626 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16627 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016628 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016630 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16631 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016632 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16633 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016634 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16635 MSM_BACKEND_DAI_INT0_MI2S_RX,
16636 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16637 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016638};
16639
16640static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016641 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16642 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016643 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016645 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16646 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016647 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016649 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16650 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016651 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016653 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016655 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016657 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16658 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016659 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16660 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016661 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16662 MSM_BACKEND_DAI_INT4_MI2S_RX,
16663 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016665 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16666 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016667 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016669 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16670 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016671 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016673 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16674 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016675 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016677 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16678 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016679 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016681 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16682 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016683 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16684 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016685 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16686 MSM_BACKEND_DAI_INT4_MI2S_RX,
16687 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16688 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016689};
16690
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016691static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
16692 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16693 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16694 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
16695 msm_routing_put_port_mixer),
16696 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16697 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16698 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
16699 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080016700 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16701 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16702 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16703 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080016704 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16705 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16706 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16707 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016708};
16709
16710static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
16711 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16712 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16713 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
16714 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080016715 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16716 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16717 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16718 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016719 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080016720 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053016721 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16722 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080016723 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16724 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16725 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16726 msm_routing_put_port_mixer),
16727
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016728};
16729
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016730static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016731 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16732 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016733 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016735 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16736 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016737 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016739 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16740 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016741 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
16742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016743 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16744 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016745 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016747 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16748 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016749 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016751 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16752 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016753 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016755 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16756 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016757 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016759 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16760 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016761 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016763 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16764 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016765 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016767 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16768 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016769 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16770 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016771 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16772 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16773 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016775 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16776 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016777 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016779 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16780 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016781 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016783 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16784 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016785 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016787 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16788 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016789 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016791 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16792 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016793 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016795 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16796 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016797 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16798 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016799 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16800 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16801 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016803 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16804 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016805 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016807 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
16808 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016809 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016811 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
16812 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016813 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016815 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
16816 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016817 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016819 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
16820 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016821 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016823 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
16824 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053016825 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16826 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016827 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
16828 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16829 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16830 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016831 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16832 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16833 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053016834 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016835};
16836
16837static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016838 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16839 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016840 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016842 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16843 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016844 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016846 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16847 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016848 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
16849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016850 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16851 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016852 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016854 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16855 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016856 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
16857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016858 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16859 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016860 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16861 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053016862 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16863 MSM_BACKEND_DAI_AUXPCM_RX,
16864 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
16865 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016866};
16867
16868static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016869 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16870 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016871 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016873 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16874 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016875 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016877 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16878 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016879 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016881 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16882 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016883 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16884 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016885};
16886
16887static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016888 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16889 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016890 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016892 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16893 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016894 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016896 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16897 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016898 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16899 msm_routing_put_port_mixer),
16900};
16901
16902static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016903 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16904 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016905 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016907 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16908 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016909 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016911 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16912 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016913 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16914 msm_routing_put_port_mixer),
16915};
16916
Rohit Kumara5077932017-09-10 22:05:05 +053016917static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016918 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16919 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016920 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016922 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16923 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016924 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016926 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16927 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016928 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16929 msm_routing_put_port_mixer),
16930};
16931
Karthikeyan Manic3700752019-03-11 18:33:53 -070016932static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
16933 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16934 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16935 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16936 msm_routing_put_port_mixer),
16937 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16938 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16939 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16940 msm_routing_put_port_mixer),
16941 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16942 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16943 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16944 msm_routing_put_port_mixer),
16945};
16946
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016947static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016948 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16949 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016950 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016952 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16953 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016954 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
16955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016956 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16957 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016958 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016960 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16961 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016962 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016964 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16965 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016966 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016968 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16969 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016970 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16971 msm_routing_put_port_mixer),
16972};
16973
16974static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016975 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
16976 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016977 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
16978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016979 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16980 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016981 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016983 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
16984 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016985 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
16986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016987 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
16988 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016989 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
16990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016991 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
16992 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016993 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
16994 msm_routing_put_port_mixer),
16995};
16996
16997static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016998 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16999 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017000 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017002 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17003 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017004 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017006 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17007 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017008 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017010 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17011 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017012 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017014 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17015 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017016 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017018 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17019 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017020 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017022 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17023 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017024 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017026 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17027 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017028 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017030 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17031 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017032 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017034 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17035 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017036 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017038 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17039 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017040 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017042 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17043 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017044 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17045 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017046 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17047 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17048 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17049 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017050};
17051
17052static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017053 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17054 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017055 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017057 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17058 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017059 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17060 msm_routing_put_port_mixer),
17061};
17062
17063static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017064 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17065 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017066 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017068 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17069 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017070 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17071 msm_routing_put_port_mixer),
17072};
17073
17074
17075static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017076 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17077 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017078 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17079 msm_routing_put_port_mixer),
17080};
17081
17082static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017083 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17084 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017085 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17086 msm_routing_put_port_mixer),
17087};
17088
Karthikeyan Mani57550082018-05-03 18:43:58 -070017089static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17090 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17091 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17092 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17093 msm_routing_put_port_mixer),
17094};
17095
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017096static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017097 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17098 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017099 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17100 msm_routing_put_port_mixer),
17101};
17102
17103static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017104 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17105 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017106 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017108 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17109 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017110 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17111 msm_routing_put_port_mixer),
17112};
17113
17114static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017115 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17116 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017117 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017119 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17120 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017121 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017123 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17124 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017125 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017127 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17128 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017129 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017131 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17132 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017133 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017135 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17136 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017137 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017139 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17140 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017141 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17142 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017143 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17144 MSM_BACKEND_DAI_PRI_MI2S_RX,
17145 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017147 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17148 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017149 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017151 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17152 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017153 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017155 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17156 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017157 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17158 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017159};
17160
17161static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017162 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
17163 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017164 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
17165 msm_routing_put_port_mixer),
17166};
17167
17168static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017169 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17170 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017171 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017173 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17174 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017175 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017177 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17178 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017179 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017181 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17182 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017183 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017185 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17186 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017187 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017189 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17190 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017191 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017193 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17194 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017195 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017197 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17198 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017199 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17200 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017201 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17202 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
17203 MSM_BACKEND_DAI_SENARY_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("SLIM_8_TX", SND_SOC_NOPM,
17206 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017207 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17208 msm_routing_put_port_mixer),
17209};
17210
Rohit Kumara5077932017-09-10 22:05:05 +053017211static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017212 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17213 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017214 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017216 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17217 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017218 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017220 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17221 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017222 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017224 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17225 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017226 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017228 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17229 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017230 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17231 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017232 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17233 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
17234 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017236 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17237 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017238 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017240 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17241 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017242 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17243 msm_routing_put_port_mixer),
17244};
17245
Karthikeyan Manic3700752019-03-11 18:33:53 -070017246static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
17247 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17248 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17249 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17250 msm_routing_put_port_mixer),
17251 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17252 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17253 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17254 msm_routing_put_port_mixer),
17255 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17256 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17257 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17258 msm_routing_put_port_mixer),
17259 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17260 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17261 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17262 msm_routing_put_port_mixer),
17263 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17264 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17265 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17266 msm_routing_put_port_mixer),
17267 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17268 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17269 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17270 msm_routing_put_port_mixer),
17271 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17272 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17273 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17274 msm_routing_put_port_mixer),
17275 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17276 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17277 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17278 msm_routing_put_port_mixer),
17279};
17280
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017281static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017282 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17283 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017284 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17285 msm_routing_get_port_mixer,
17286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017287 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17288 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017289 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17290 msm_routing_get_port_mixer,
17291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017292 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17293 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017294 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17295 msm_routing_get_port_mixer,
17296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017297 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17298 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017299 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17300 msm_routing_get_port_mixer,
17301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017302 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17303 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017304 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17305 msm_routing_get_port_mixer,
17306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017307 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17308 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017309 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17310 msm_routing_get_port_mixer,
17311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017312 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17313 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017314 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17315 msm_routing_get_port_mixer,
17316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017317 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17318 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017319 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17320 msm_routing_get_port_mixer,
17321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017322 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17323 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017324 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17325 msm_routing_get_port_mixer,
17326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017327 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17328 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017329 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17330 msm_routing_get_port_mixer,
17331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017332 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17333 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017334 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17335 msm_routing_get_port_mixer,
17336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017337 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17338 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017339 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17340 msm_routing_get_port_mixer,
17341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017342 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17343 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017344 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17345 msm_routing_get_port_mixer,
17346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017347 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17348 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017349 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17350 msm_routing_get_port_mixer,
17351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017352 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17353 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017354 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17355 msm_routing_get_port_mixer,
17356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017357 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17358 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017359 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17360 msm_routing_get_port_mixer,
17361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017362 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17363 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017364 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17365 msm_routing_get_port_mixer,
17366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017367 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17368 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017369 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17370 msm_routing_get_port_mixer,
17371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017372 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17373 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017374 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17375 msm_routing_get_port_mixer,
17376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017377 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17378 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017379 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17380 msm_routing_get_port_mixer,
17381 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017382 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17383 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17384 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17385 msm_routing_get_port_mixer,
17386 msm_routing_put_port_mixer),
17387 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17388 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17389 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17390 msm_routing_get_port_mixer,
17391 msm_routing_put_port_mixer),
17392 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17393 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17394 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17395 msm_routing_get_port_mixer,
17396 msm_routing_put_port_mixer),
17397 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17398 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17399 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17400 msm_routing_get_port_mixer,
17401 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017402};
17403
17404static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017405 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17406 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017407 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17408 msm_routing_get_port_mixer,
17409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017410 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17411 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017412 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17413 msm_routing_get_port_mixer,
17414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017415 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17416 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017417 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17418 msm_routing_get_port_mixer,
17419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017420 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17421 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017422 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17423 msm_routing_get_port_mixer,
17424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017425 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17426 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017427 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17428 msm_routing_get_port_mixer,
17429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017430 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17431 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017432 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17433 msm_routing_get_port_mixer,
17434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017435 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17436 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017437 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17438 msm_routing_get_port_mixer,
17439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017440 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17441 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017442 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17443 msm_routing_get_port_mixer,
17444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017445 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17446 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017447 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17448 msm_routing_get_port_mixer,
17449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017450 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17451 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017452 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17453 msm_routing_get_port_mixer,
17454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017455 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17456 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017457 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17458 msm_routing_get_port_mixer,
17459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017460 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17461 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017462 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17463 msm_routing_get_port_mixer,
17464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017465 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17466 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017467 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17468 msm_routing_get_port_mixer,
17469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017470 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17471 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017472 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17473 msm_routing_get_port_mixer,
17474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017475 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17476 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017477 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17478 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_3", SND_SOC_NOPM,
17481 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017482 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17483 msm_routing_get_port_mixer,
17484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017485 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17486 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017487 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17488 msm_routing_get_port_mixer,
17489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017490 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17491 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017492 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17493 msm_routing_get_port_mixer,
17494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017495 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17496 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017497 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17498 msm_routing_get_port_mixer,
17499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017500 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17501 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017502 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17503 msm_routing_get_port_mixer,
17504 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017505 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17506 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17507 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17508 msm_routing_get_port_mixer,
17509 msm_routing_put_port_mixer),
17510 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17511 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17512 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17513 msm_routing_get_port_mixer,
17514 msm_routing_put_port_mixer),
17515 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17516 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17517 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17518 msm_routing_get_port_mixer,
17519 msm_routing_put_port_mixer),
17520 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17521 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17522 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17523 msm_routing_get_port_mixer,
17524 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017525};
17526
17527static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017528 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17529 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017530 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17531 msm_routing_get_port_mixer,
17532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017533 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17534 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017535 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17536 msm_routing_get_port_mixer,
17537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017538 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17539 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017540 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17541 msm_routing_get_port_mixer,
17542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017543 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17544 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017545 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17546 msm_routing_get_port_mixer,
17547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017548 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17549 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017550 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17551 msm_routing_get_port_mixer,
17552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017553 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17554 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017555 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17556 msm_routing_get_port_mixer,
17557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017558 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17559 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017560 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17561 msm_routing_get_port_mixer,
17562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017563 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17564 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017565 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17566 msm_routing_get_port_mixer,
17567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017568 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17569 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017570 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17571 msm_routing_get_port_mixer,
17572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017573 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17574 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017575 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17576 msm_routing_get_port_mixer,
17577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017578 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17579 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017580 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17581 msm_routing_get_port_mixer,
17582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017583 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17584 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017585 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17586 msm_routing_get_port_mixer,
17587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017588 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17589 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017590 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17591 msm_routing_get_port_mixer,
17592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017593 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17594 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017595 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17596 msm_routing_get_port_mixer,
17597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017598 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17599 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017600 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17601 msm_routing_get_port_mixer,
17602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017603 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17604 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017605 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17606 msm_routing_get_port_mixer,
17607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017608 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17609 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017610 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17611 msm_routing_get_port_mixer,
17612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017613 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17614 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017615 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17616 msm_routing_get_port_mixer,
17617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017618 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17619 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017620 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17621 msm_routing_get_port_mixer,
17622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017623 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17624 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017625 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17626 msm_routing_get_port_mixer,
17627 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017628 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17629 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17630 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17631 msm_routing_get_port_mixer,
17632 msm_routing_put_port_mixer),
17633 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17634 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17635 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17636 msm_routing_get_port_mixer,
17637 msm_routing_put_port_mixer),
17638 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17639 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17640 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17641 msm_routing_get_port_mixer,
17642 msm_routing_put_port_mixer),
17643 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17644 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17645 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17646 msm_routing_get_port_mixer,
17647 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017648};
17649
17650static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017651 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17652 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017653 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17654 msm_routing_get_port_mixer,
17655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017656 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17657 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017658 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17659 msm_routing_get_port_mixer,
17660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017661 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17662 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017663 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17664 msm_routing_get_port_mixer,
17665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017666 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17667 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017668 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17669 msm_routing_get_port_mixer,
17670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017671 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17672 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017673 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17674 msm_routing_get_port_mixer,
17675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017676 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17677 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017678 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17679 msm_routing_get_port_mixer,
17680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017681 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17682 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017683 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17684 msm_routing_get_port_mixer,
17685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017686 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17687 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017688 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17689 msm_routing_get_port_mixer,
17690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017691 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17692 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017693 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17694 msm_routing_get_port_mixer,
17695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017696 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17697 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017698 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17699 msm_routing_get_port_mixer,
17700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017701 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17702 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017703 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17704 msm_routing_get_port_mixer,
17705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017706 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17707 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017708 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17709 msm_routing_get_port_mixer,
17710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017711 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17712 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017713 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17714 msm_routing_get_port_mixer,
17715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017716 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17717 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017718 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17719 msm_routing_get_port_mixer,
17720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017721 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17722 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017723 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17724 msm_routing_get_port_mixer,
17725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017726 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17727 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017728 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17729 msm_routing_get_port_mixer,
17730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017731 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17732 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017733 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17734 msm_routing_get_port_mixer,
17735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017736 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17737 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017738 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17739 msm_routing_get_port_mixer,
17740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017741 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17742 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017743 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17744 msm_routing_get_port_mixer,
17745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017746 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17747 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017748 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17749 msm_routing_get_port_mixer,
17750 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017751 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17752 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17753 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17754 msm_routing_get_port_mixer,
17755 msm_routing_put_port_mixer),
17756 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17757 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17758 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17759 msm_routing_get_port_mixer,
17760 msm_routing_put_port_mixer),
17761 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17762 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17763 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17764 msm_routing_get_port_mixer,
17765 msm_routing_put_port_mixer),
17766 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17767 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17768 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17769 msm_routing_get_port_mixer,
17770 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017771};
17772
17773static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017774 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17775 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017776 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17777 msm_routing_get_port_mixer,
17778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017779 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17780 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017781 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17782 msm_routing_get_port_mixer,
17783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017784 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17785 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017786 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17787 msm_routing_get_port_mixer,
17788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017789 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17790 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017791 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17792 msm_routing_get_port_mixer,
17793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017794 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17795 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017796 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17797 msm_routing_get_port_mixer,
17798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017799 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17800 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017801 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17802 msm_routing_get_port_mixer,
17803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017804 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17805 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017806 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17807 msm_routing_get_port_mixer,
17808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017809 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17810 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017811 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17812 msm_routing_get_port_mixer,
17813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017814 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
17815 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017816 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
17817 msm_routing_get_port_mixer,
17818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017819 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
17820 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017821 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
17822 msm_routing_get_port_mixer,
17823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017824 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
17825 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017826 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
17827 msm_routing_get_port_mixer,
17828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017829 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
17830 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017831 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
17832 msm_routing_get_port_mixer,
17833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017834 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17835 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017836 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17837 msm_routing_get_port_mixer,
17838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017839 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17840 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017841 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17842 msm_routing_get_port_mixer,
17843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017844 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17845 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017846 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17847 msm_routing_get_port_mixer,
17848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017849 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17850 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017851 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17852 msm_routing_get_port_mixer,
17853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017854 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17855 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017856 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17857 msm_routing_get_port_mixer,
17858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017859 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17860 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017861 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17862 msm_routing_get_port_mixer,
17863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017864 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17865 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017866 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17867 msm_routing_get_port_mixer,
17868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017869 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17870 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017871 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17872 msm_routing_get_port_mixer,
17873 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017874 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17875 MSM_BACKEND_DAI_SEC_TDM_RX_0,
17876 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17877 msm_routing_get_port_mixer,
17878 msm_routing_put_port_mixer),
17879 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17880 MSM_BACKEND_DAI_SEC_TDM_RX_0,
17881 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17882 msm_routing_get_port_mixer,
17883 msm_routing_put_port_mixer),
17884 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17885 MSM_BACKEND_DAI_SEC_TDM_RX_0,
17886 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17887 msm_routing_get_port_mixer,
17888 msm_routing_put_port_mixer),
17889 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17890 MSM_BACKEND_DAI_SEC_TDM_RX_0,
17891 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17892 msm_routing_get_port_mixer,
17893 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017894};
17895
17896static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017897 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17898 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017899 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17900 msm_routing_get_port_mixer,
17901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017902 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17903 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017904 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17905 msm_routing_get_port_mixer,
17906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017907 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17908 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017909 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17910 msm_routing_get_port_mixer,
17911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017912 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17913 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017914 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17915 msm_routing_get_port_mixer,
17916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017917 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17918 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017919 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17920 msm_routing_get_port_mixer,
17921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017922 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17923 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017924 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17925 msm_routing_get_port_mixer,
17926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017927 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17928 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017929 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17930 msm_routing_get_port_mixer,
17931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017932 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17933 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017934 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17935 msm_routing_get_port_mixer,
17936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017937 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
17938 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017939 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
17940 msm_routing_get_port_mixer,
17941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017942 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
17943 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017944 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
17945 msm_routing_get_port_mixer,
17946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017947 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
17948 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017949 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
17950 msm_routing_get_port_mixer,
17951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017952 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
17953 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017954 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
17955 msm_routing_get_port_mixer,
17956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017957 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17958 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017959 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17960 msm_routing_get_port_mixer,
17961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017962 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17963 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017964 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17965 msm_routing_get_port_mixer,
17966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017967 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17968 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017969 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17970 msm_routing_get_port_mixer,
17971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017972 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17973 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017974 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17975 msm_routing_get_port_mixer,
17976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017977 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17978 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017979 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17980 msm_routing_get_port_mixer,
17981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017982 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17983 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017984 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17985 msm_routing_get_port_mixer,
17986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017987 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17988 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017989 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17990 msm_routing_get_port_mixer,
17991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017992 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17993 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017994 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17995 msm_routing_get_port_mixer,
17996 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017997 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17998 MSM_BACKEND_DAI_SEC_TDM_RX_1,
17999 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18000 msm_routing_get_port_mixer,
18001 msm_routing_put_port_mixer),
18002 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18003 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18004 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18005 msm_routing_get_port_mixer,
18006 msm_routing_put_port_mixer),
18007 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18008 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18009 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18010 msm_routing_get_port_mixer,
18011 msm_routing_put_port_mixer),
18012 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18013 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18014 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18015 msm_routing_get_port_mixer,
18016 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018017};
18018
18019static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018020 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18021 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018022 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18023 msm_routing_get_port_mixer,
18024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018025 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18026 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018027 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18028 msm_routing_get_port_mixer,
18029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018030 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18031 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018032 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18033 msm_routing_get_port_mixer,
18034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018035 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18036 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018037 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18038 msm_routing_get_port_mixer,
18039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018040 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18041 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018042 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18043 msm_routing_get_port_mixer,
18044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018045 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18046 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018047 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18048 msm_routing_get_port_mixer,
18049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018050 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18051 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018052 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18053 msm_routing_get_port_mixer,
18054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018055 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18056 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018057 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18058 msm_routing_get_port_mixer,
18059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018060 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18061 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018062 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18063 msm_routing_get_port_mixer,
18064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018065 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18066 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018067 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18068 msm_routing_get_port_mixer,
18069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018070 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18071 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018072 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18073 msm_routing_get_port_mixer,
18074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018075 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18076 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018077 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18078 msm_routing_get_port_mixer,
18079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018080 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18081 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018082 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18083 msm_routing_get_port_mixer,
18084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018085 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18086 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018087 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18088 msm_routing_get_port_mixer,
18089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018090 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18091 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018092 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18093 msm_routing_get_port_mixer,
18094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018095 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18096 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018097 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18098 msm_routing_get_port_mixer,
18099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018100 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18101 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018102 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18103 msm_routing_get_port_mixer,
18104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018105 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18106 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018107 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18108 msm_routing_get_port_mixer,
18109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018110 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18111 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018112 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18113 msm_routing_get_port_mixer,
18114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018115 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18116 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018117 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18118 msm_routing_get_port_mixer,
18119 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018120 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18121 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18122 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18123 msm_routing_get_port_mixer,
18124 msm_routing_put_port_mixer),
18125 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18126 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18127 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18128 msm_routing_get_port_mixer,
18129 msm_routing_put_port_mixer),
18130 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18131 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18132 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18133 msm_routing_get_port_mixer,
18134 msm_routing_put_port_mixer),
18135 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18136 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18137 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18138 msm_routing_get_port_mixer,
18139 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018140};
18141
18142static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018143 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18144 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018145 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18146 msm_routing_get_port_mixer,
18147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018148 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18149 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018150 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18151 msm_routing_get_port_mixer,
18152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018153 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18154 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018155 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18156 msm_routing_get_port_mixer,
18157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018158 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18159 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018160 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18161 msm_routing_get_port_mixer,
18162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018163 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18164 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018165 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18166 msm_routing_get_port_mixer,
18167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018168 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18169 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018170 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18171 msm_routing_get_port_mixer,
18172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018173 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18174 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018175 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18176 msm_routing_get_port_mixer,
18177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018178 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18179 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018180 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18181 msm_routing_get_port_mixer,
18182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018183 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18184 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018185 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18186 msm_routing_get_port_mixer,
18187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018188 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18189 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018190 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18191 msm_routing_get_port_mixer,
18192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018193 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18194 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018195 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18196 msm_routing_get_port_mixer,
18197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018198 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18199 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018200 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18201 msm_routing_get_port_mixer,
18202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018203 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18204 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018205 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18206 msm_routing_get_port_mixer,
18207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018208 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18209 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018210 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18211 msm_routing_get_port_mixer,
18212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018213 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18214 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018215 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18216 msm_routing_get_port_mixer,
18217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018218 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18219 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018220 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18221 msm_routing_get_port_mixer,
18222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018223 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18224 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018225 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18226 msm_routing_get_port_mixer,
18227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018228 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18229 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018230 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18231 msm_routing_get_port_mixer,
18232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018233 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18234 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018235 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18236 msm_routing_get_port_mixer,
18237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018238 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18239 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018240 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18241 msm_routing_get_port_mixer,
18242 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018243 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18244 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18245 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18246 msm_routing_get_port_mixer,
18247 msm_routing_put_port_mixer),
18248 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18249 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18250 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18251 msm_routing_get_port_mixer,
18252 msm_routing_put_port_mixer),
18253 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18254 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18255 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18256 msm_routing_get_port_mixer,
18257 msm_routing_put_port_mixer),
18258 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18259 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18260 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18261 msm_routing_get_port_mixer,
18262 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018263};
18264
Derek Chenfdcc0982018-10-02 15:14:03 -070018265static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
18266 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
18267 MSM_BACKEND_DAI_SEC_TDM_RX_7,
18268 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
18269 msm_routing_get_port_mixer,
18270 msm_routing_put_port_mixer),
18271};
18272
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018273static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018274 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18275 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018276 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18277 msm_routing_get_port_mixer,
18278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018279 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18280 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018281 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18282 msm_routing_get_port_mixer,
18283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018284 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18285 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018286 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18287 msm_routing_get_port_mixer,
18288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018289 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18290 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018291 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18292 msm_routing_get_port_mixer,
18293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018294 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18295 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018296 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18297 msm_routing_get_port_mixer,
18298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018299 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18300 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018301 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18302 msm_routing_get_port_mixer,
18303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018304 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18305 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018306 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18307 msm_routing_get_port_mixer,
18308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018309 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18310 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018311 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18312 msm_routing_get_port_mixer,
18313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018314 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18315 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018316 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18317 msm_routing_get_port_mixer,
18318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018319 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18320 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018321 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18322 msm_routing_get_port_mixer,
18323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018324 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18325 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018326 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18327 msm_routing_get_port_mixer,
18328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018329 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18330 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018331 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18332 msm_routing_get_port_mixer,
18333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018334 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18335 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018336 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18337 msm_routing_get_port_mixer,
18338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018339 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18340 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018341 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18342 msm_routing_get_port_mixer,
18343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018344 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18345 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018346 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18347 msm_routing_get_port_mixer,
18348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018349 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18350 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018351 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18352 msm_routing_get_port_mixer,
18353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018354 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18355 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018356 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18357 msm_routing_get_port_mixer,
18358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018359 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18360 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018361 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18362 msm_routing_get_port_mixer,
18363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018364 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18365 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018366 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18367 msm_routing_get_port_mixer,
18368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018369 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18370 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018371 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18372 msm_routing_get_port_mixer,
18373 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018374 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18375 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18376 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18377 msm_routing_get_port_mixer,
18378 msm_routing_put_port_mixer),
18379 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18380 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18381 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18382 msm_routing_get_port_mixer,
18383 msm_routing_put_port_mixer),
18384 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18385 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18386 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18387 msm_routing_get_port_mixer,
18388 msm_routing_put_port_mixer),
18389 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18390 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18391 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18392 msm_routing_get_port_mixer,
18393 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018394};
18395
18396static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018397 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18398 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018399 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18400 msm_routing_get_port_mixer,
18401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018402 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18403 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018404 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18405 msm_routing_get_port_mixer,
18406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018407 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18408 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018409 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18410 msm_routing_get_port_mixer,
18411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018412 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18413 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018414 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18415 msm_routing_get_port_mixer,
18416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018417 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18418 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018419 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18420 msm_routing_get_port_mixer,
18421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018422 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18423 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018424 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18425 msm_routing_get_port_mixer,
18426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018427 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18428 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018429 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18430 msm_routing_get_port_mixer,
18431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018432 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18433 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018434 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18435 msm_routing_get_port_mixer,
18436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018437 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18438 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018439 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18440 msm_routing_get_port_mixer,
18441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018442 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18443 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018444 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18445 msm_routing_get_port_mixer,
18446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018447 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18448 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018449 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18450 msm_routing_get_port_mixer,
18451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018452 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18453 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018454 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18455 msm_routing_get_port_mixer,
18456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018457 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18458 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018459 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18460 msm_routing_get_port_mixer,
18461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018462 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18463 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018464 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18465 msm_routing_get_port_mixer,
18466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018467 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18468 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018469 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18470 msm_routing_get_port_mixer,
18471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018472 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18473 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018474 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18475 msm_routing_get_port_mixer,
18476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018477 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18478 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018479 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18480 msm_routing_get_port_mixer,
18481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018482 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18483 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018484 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18485 msm_routing_get_port_mixer,
18486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018487 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18488 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018489 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18490 msm_routing_get_port_mixer,
18491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018492 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18493 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018494 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18495 msm_routing_get_port_mixer,
18496 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018497 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18498 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18499 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18500 msm_routing_get_port_mixer,
18501 msm_routing_put_port_mixer),
18502 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18503 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18504 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18505 msm_routing_get_port_mixer,
18506 msm_routing_put_port_mixer),
18507 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18508 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18509 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18510 msm_routing_get_port_mixer,
18511 msm_routing_put_port_mixer),
18512 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18513 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18514 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18515 msm_routing_get_port_mixer,
18516 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018517};
18518
18519static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018520 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18521 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018522 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18523 msm_routing_get_port_mixer,
18524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018525 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18526 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018527 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18528 msm_routing_get_port_mixer,
18529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018530 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18531 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018532 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18533 msm_routing_get_port_mixer,
18534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018535 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18536 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018537 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18538 msm_routing_get_port_mixer,
18539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018540 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18541 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018542 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18543 msm_routing_get_port_mixer,
18544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018545 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18546 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018547 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18548 msm_routing_get_port_mixer,
18549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018550 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18551 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018552 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18553 msm_routing_get_port_mixer,
18554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018555 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18556 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018557 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18558 msm_routing_get_port_mixer,
18559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018560 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18561 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018562 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18563 msm_routing_get_port_mixer,
18564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018565 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18566 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018567 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18568 msm_routing_get_port_mixer,
18569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018570 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18571 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018572 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18573 msm_routing_get_port_mixer,
18574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018575 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18576 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018577 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18578 msm_routing_get_port_mixer,
18579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018580 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18581 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018582 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18583 msm_routing_get_port_mixer,
18584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018585 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18586 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018587 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18588 msm_routing_get_port_mixer,
18589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018590 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18591 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018592 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18593 msm_routing_get_port_mixer,
18594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018595 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18596 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018597 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18598 msm_routing_get_port_mixer,
18599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018600 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18601 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018602 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18603 msm_routing_get_port_mixer,
18604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018605 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18606 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018607 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18608 msm_routing_get_port_mixer,
18609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018610 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18611 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018612 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18613 msm_routing_get_port_mixer,
18614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018615 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18616 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018617 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18618 msm_routing_get_port_mixer,
18619 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018620 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18621 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18622 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18623 msm_routing_get_port_mixer,
18624 msm_routing_put_port_mixer),
18625 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18626 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18627 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18628 msm_routing_get_port_mixer,
18629 msm_routing_put_port_mixer),
18630 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18631 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18632 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18633 msm_routing_get_port_mixer,
18634 msm_routing_put_port_mixer),
18635 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18636 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18637 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18638 msm_routing_get_port_mixer,
18639 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018640};
18641
18642static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018643 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18644 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018645 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18646 msm_routing_get_port_mixer,
18647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018648 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18649 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018650 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18651 msm_routing_get_port_mixer,
18652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018653 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18654 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018655 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18656 msm_routing_get_port_mixer,
18657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018658 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18659 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018660 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18661 msm_routing_get_port_mixer,
18662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018663 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18664 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018665 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18666 msm_routing_get_port_mixer,
18667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018668 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18669 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018670 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18671 msm_routing_get_port_mixer,
18672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018673 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18674 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018675 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18676 msm_routing_get_port_mixer,
18677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018678 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18679 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018680 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18681 msm_routing_get_port_mixer,
18682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018683 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18684 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018685 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18686 msm_routing_get_port_mixer,
18687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018688 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18689 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018690 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18691 msm_routing_get_port_mixer,
18692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018693 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18694 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018695 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18696 msm_routing_get_port_mixer,
18697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018698 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18699 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018700 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18701 msm_routing_get_port_mixer,
18702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018703 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18704 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018705 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18706 msm_routing_get_port_mixer,
18707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018708 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18709 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018710 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18711 msm_routing_get_port_mixer,
18712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018713 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18714 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018715 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18716 msm_routing_get_port_mixer,
18717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018718 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18719 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018720 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18721 msm_routing_get_port_mixer,
18722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018723 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18724 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018725 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18726 msm_routing_get_port_mixer,
18727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018728 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18729 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018730 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18731 msm_routing_get_port_mixer,
18732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018733 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18734 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018735 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18736 msm_routing_get_port_mixer,
18737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018738 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18739 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018740 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18741 msm_routing_get_port_mixer,
18742 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018743 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18744 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18745 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18746 msm_routing_get_port_mixer,
18747 msm_routing_put_port_mixer),
18748 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18749 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18750 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18751 msm_routing_get_port_mixer,
18752 msm_routing_put_port_mixer),
18753 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18754 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18755 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18756 msm_routing_get_port_mixer,
18757 msm_routing_put_port_mixer),
18758 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18759 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18760 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18761 msm_routing_get_port_mixer,
18762 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018763};
18764
18765static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018766 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18767 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018768 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18769 msm_routing_get_port_mixer,
18770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018771 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18772 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018773 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18774 msm_routing_get_port_mixer,
18775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018776 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18777 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018778 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18779 msm_routing_get_port_mixer,
18780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018781 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18782 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018783 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18784 msm_routing_get_port_mixer,
18785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018786 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18787 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018788 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18789 msm_routing_get_port_mixer,
18790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018791 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18792 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018793 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18794 msm_routing_get_port_mixer,
18795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018796 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18797 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018798 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18799 msm_routing_get_port_mixer,
18800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018801 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18802 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018803 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18804 msm_routing_get_port_mixer,
18805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018806 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18807 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018808 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18809 msm_routing_get_port_mixer,
18810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018811 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18812 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018813 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18814 msm_routing_get_port_mixer,
18815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018816 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18817 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018818 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18819 msm_routing_get_port_mixer,
18820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018821 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18822 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018823 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18824 msm_routing_get_port_mixer,
18825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018826 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18827 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018828 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18829 msm_routing_get_port_mixer,
18830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018831 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18832 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018833 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18834 msm_routing_get_port_mixer,
18835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018836 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18837 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018838 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18839 msm_routing_get_port_mixer,
18840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018841 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18842 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018843 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18844 msm_routing_get_port_mixer,
18845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018846 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18847 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018848 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18849 msm_routing_get_port_mixer,
18850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018851 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18852 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018853 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18854 msm_routing_get_port_mixer,
18855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018856 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18857 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018858 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18859 msm_routing_get_port_mixer,
18860 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018861 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18862 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018863 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18864 msm_routing_get_port_mixer,
18865 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018866 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18867 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
18868 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18869 msm_routing_get_port_mixer,
18870 msm_routing_put_port_mixer),
18871 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18872 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
18873 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18874 msm_routing_get_port_mixer,
18875 msm_routing_put_port_mixer),
18876 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18877 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
18878 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18879 msm_routing_get_port_mixer,
18880 msm_routing_put_port_mixer),
18881 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18882 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
18883 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18884 msm_routing_get_port_mixer,
18885 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018886};
18887
18888static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018889 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18890 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018891 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18892 msm_routing_get_port_mixer,
18893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018894 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18895 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018896 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18897 msm_routing_get_port_mixer,
18898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018899 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18900 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018901 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18902 msm_routing_get_port_mixer,
18903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018904 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18905 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018906 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18907 msm_routing_get_port_mixer,
18908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018909 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18910 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018911 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18912 msm_routing_get_port_mixer,
18913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018914 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18915 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018916 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18917 msm_routing_get_port_mixer,
18918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018919 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18920 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018921 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18922 msm_routing_get_port_mixer,
18923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018924 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18925 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018926 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18927 msm_routing_get_port_mixer,
18928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018929 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18930 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018931 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18932 msm_routing_get_port_mixer,
18933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018934 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18935 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018936 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18937 msm_routing_get_port_mixer,
18938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018939 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18940 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018941 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18942 msm_routing_get_port_mixer,
18943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018944 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18945 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018946 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18947 msm_routing_get_port_mixer,
18948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018949 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18950 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018951 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18952 msm_routing_get_port_mixer,
18953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018954 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18955 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018956 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18957 msm_routing_get_port_mixer,
18958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018959 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18960 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018961 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18962 msm_routing_get_port_mixer,
18963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018964 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18965 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018966 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18967 msm_routing_get_port_mixer,
18968 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018969 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18970 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018971 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18972 msm_routing_get_port_mixer,
18973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018974 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18975 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018976 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18977 msm_routing_get_port_mixer,
18978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018979 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18980 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018981 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18982 msm_routing_get_port_mixer,
18983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018984 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18985 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018986 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18987 msm_routing_get_port_mixer,
18988 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018989 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18990 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
18991 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18992 msm_routing_get_port_mixer,
18993 msm_routing_put_port_mixer),
18994 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18995 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
18996 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18997 msm_routing_get_port_mixer,
18998 msm_routing_put_port_mixer),
18999 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19000 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19001 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19002 msm_routing_get_port_mixer,
19003 msm_routing_put_port_mixer),
19004 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19005 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19006 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19007 msm_routing_get_port_mixer,
19008 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019009};
19010
19011static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019012 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19013 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019014 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19015 msm_routing_get_port_mixer,
19016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019017 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19018 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019019 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19020 msm_routing_get_port_mixer,
19021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019022 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19023 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019024 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19025 msm_routing_get_port_mixer,
19026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019027 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19028 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019029 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19030 msm_routing_get_port_mixer,
19031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019032 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19033 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019034 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19035 msm_routing_get_port_mixer,
19036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019037 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19038 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019039 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19040 msm_routing_get_port_mixer,
19041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019042 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19043 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019044 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19045 msm_routing_get_port_mixer,
19046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019047 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19048 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019049 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19050 msm_routing_get_port_mixer,
19051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019052 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19053 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019054 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19055 msm_routing_get_port_mixer,
19056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019057 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19058 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019059 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19060 msm_routing_get_port_mixer,
19061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019062 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19063 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019064 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19065 msm_routing_get_port_mixer,
19066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019067 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19068 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019069 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19070 msm_routing_get_port_mixer,
19071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019072 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19073 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019074 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19075 msm_routing_get_port_mixer,
19076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019077 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19078 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019079 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19080 msm_routing_get_port_mixer,
19081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019082 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19083 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019084 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19085 msm_routing_get_port_mixer,
19086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019087 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19088 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019089 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19090 msm_routing_get_port_mixer,
19091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019092 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19093 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019094 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19095 msm_routing_get_port_mixer,
19096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019097 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19098 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019099 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19100 msm_routing_get_port_mixer,
19101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019102 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19103 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019104 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19105 msm_routing_get_port_mixer,
19106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019107 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19108 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019109 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19110 msm_routing_get_port_mixer,
19111 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019112 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19113 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19114 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19115 msm_routing_get_port_mixer,
19116 msm_routing_put_port_mixer),
19117 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19118 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19119 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19120 msm_routing_get_port_mixer,
19121 msm_routing_put_port_mixer),
19122 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19123 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19124 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19125 msm_routing_get_port_mixer,
19126 msm_routing_put_port_mixer),
19127 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19128 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19129 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19130 msm_routing_get_port_mixer,
19131 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019132};
19133
19134static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019135 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19136 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019137 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19138 msm_routing_get_port_mixer,
19139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019140 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19141 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019142 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19143 msm_routing_get_port_mixer,
19144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019145 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19146 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019147 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19148 msm_routing_get_port_mixer,
19149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019150 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19151 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019152 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19153 msm_routing_get_port_mixer,
19154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019155 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19156 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019157 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19158 msm_routing_get_port_mixer,
19159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019160 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19161 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019162 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19163 msm_routing_get_port_mixer,
19164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019165 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19166 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019167 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19168 msm_routing_get_port_mixer,
19169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019170 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19171 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019172 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19173 msm_routing_get_port_mixer,
19174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019175 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19176 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019177 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19178 msm_routing_get_port_mixer,
19179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019180 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19181 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019182 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19183 msm_routing_get_port_mixer,
19184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019185 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19186 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019187 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19188 msm_routing_get_port_mixer,
19189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019190 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19191 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019192 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19193 msm_routing_get_port_mixer,
19194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019195 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19196 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019197 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19198 msm_routing_get_port_mixer,
19199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019200 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19201 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019202 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19203 msm_routing_get_port_mixer,
19204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019205 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19206 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019207 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19208 msm_routing_get_port_mixer,
19209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019210 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19211 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019212 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19213 msm_routing_get_port_mixer,
19214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019215 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19216 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019217 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19218 msm_routing_get_port_mixer,
19219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019220 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19221 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019222 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19223 msm_routing_get_port_mixer,
19224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019225 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19226 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019227 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19228 msm_routing_get_port_mixer,
19229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019230 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19231 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019232 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19233 msm_routing_get_port_mixer,
19234 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019235 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19236 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19237 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19238 msm_routing_get_port_mixer,
19239 msm_routing_put_port_mixer),
19240 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19241 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19242 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19243 msm_routing_get_port_mixer,
19244 msm_routing_put_port_mixer),
19245 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19246 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19247 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19248 msm_routing_get_port_mixer,
19249 msm_routing_put_port_mixer),
19250 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19251 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19252 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19253 msm_routing_get_port_mixer,
19254 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019255};
19256
Derek Chenb9048cb2019-03-07 14:54:13 -050019257static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
19258 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
19259 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19260 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
19261 msm_routing_get_port_mixer,
19262 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070019263 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
19264 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19265 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
19266 msm_routing_get_port_mixer,
19267 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050019268};
19269
Rohit Kumara5077932017-09-10 22:05:05 +053019270static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019271 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19272 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019273 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19274 msm_routing_get_port_mixer,
19275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019276 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19277 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019278 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19279 msm_routing_get_port_mixer,
19280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019281 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19282 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019283 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19284 msm_routing_get_port_mixer,
19285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019286 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19287 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019288 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19289 msm_routing_get_port_mixer,
19290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019291 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19292 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019293 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19294 msm_routing_get_port_mixer,
19295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019296 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19297 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019298 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19299 msm_routing_get_port_mixer,
19300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019301 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19302 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019303 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19304 msm_routing_get_port_mixer,
19305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019306 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19307 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019308 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19309 msm_routing_get_port_mixer,
19310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019311 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19312 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019313 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19314 msm_routing_get_port_mixer,
19315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019316 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19317 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019318 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19319 msm_routing_get_port_mixer,
19320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019321 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19322 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019323 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19324 msm_routing_get_port_mixer,
19325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019326 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19327 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019328 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19329 msm_routing_get_port_mixer,
19330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019331 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19332 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019333 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19334 msm_routing_get_port_mixer,
19335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019336 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19337 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019338 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19339 msm_routing_get_port_mixer,
19340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019341 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19342 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019343 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19344 msm_routing_get_port_mixer,
19345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019346 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19347 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019348 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19349 msm_routing_get_port_mixer,
19350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019351 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19352 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019353 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19354 msm_routing_get_port_mixer,
19355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019356 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19357 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019358 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19359 msm_routing_get_port_mixer,
19360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019361 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19362 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019363 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19364 msm_routing_get_port_mixer,
19365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019366 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19367 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019368 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19369 msm_routing_get_port_mixer,
19370 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019371 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19372 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19373 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19374 msm_routing_get_port_mixer,
19375 msm_routing_put_port_mixer),
19376 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19377 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19378 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19379 msm_routing_get_port_mixer,
19380 msm_routing_put_port_mixer),
19381 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19382 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19383 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19384 msm_routing_get_port_mixer,
19385 msm_routing_put_port_mixer),
19386 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19387 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19388 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19389 msm_routing_get_port_mixer,
19390 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019391};
19392
19393static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019394 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19395 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019396 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19397 msm_routing_get_port_mixer,
19398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019399 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19400 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019401 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19402 msm_routing_get_port_mixer,
19403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019404 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19405 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019406 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19407 msm_routing_get_port_mixer,
19408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019409 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19410 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019411 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19412 msm_routing_get_port_mixer,
19413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019414 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19415 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019416 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19417 msm_routing_get_port_mixer,
19418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019419 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19420 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019421 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19422 msm_routing_get_port_mixer,
19423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019424 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19425 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019426 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19427 msm_routing_get_port_mixer,
19428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019429 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19430 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019431 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19432 msm_routing_get_port_mixer,
19433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019434 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19435 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019436 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19437 msm_routing_get_port_mixer,
19438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019439 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19440 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019441 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19442 msm_routing_get_port_mixer,
19443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019444 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19445 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019446 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19447 msm_routing_get_port_mixer,
19448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019449 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19450 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019451 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19452 msm_routing_get_port_mixer,
19453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019454 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19455 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019456 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19457 msm_routing_get_port_mixer,
19458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019459 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19460 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019461 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19462 msm_routing_get_port_mixer,
19463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019464 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19465 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019466 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19467 msm_routing_get_port_mixer,
19468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019469 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19470 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019471 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19472 msm_routing_get_port_mixer,
19473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019474 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19475 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019476 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19477 msm_routing_get_port_mixer,
19478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019479 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19480 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019481 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19482 msm_routing_get_port_mixer,
19483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019484 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19485 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019486 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19487 msm_routing_get_port_mixer,
19488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019489 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19490 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019491 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19492 msm_routing_get_port_mixer,
19493 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019494 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19495 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19496 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19497 msm_routing_get_port_mixer,
19498 msm_routing_put_port_mixer),
19499 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19500 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19501 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19502 msm_routing_get_port_mixer,
19503 msm_routing_put_port_mixer),
19504 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19505 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19506 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19507 msm_routing_get_port_mixer,
19508 msm_routing_put_port_mixer),
19509 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19510 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19511 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19512 msm_routing_get_port_mixer,
19513 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019514};
19515
19516static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019517 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19518 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019519 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19520 msm_routing_get_port_mixer,
19521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019522 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19523 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019524 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19525 msm_routing_get_port_mixer,
19526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019527 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19528 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019529 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19530 msm_routing_get_port_mixer,
19531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019532 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19533 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019534 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19535 msm_routing_get_port_mixer,
19536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019537 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19538 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019539 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19540 msm_routing_get_port_mixer,
19541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019542 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19543 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019544 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19545 msm_routing_get_port_mixer,
19546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019547 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19548 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019549 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19550 msm_routing_get_port_mixer,
19551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019552 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19553 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019554 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19555 msm_routing_get_port_mixer,
19556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019557 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19558 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019559 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19560 msm_routing_get_port_mixer,
19561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019562 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19563 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019564 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19565 msm_routing_get_port_mixer,
19566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019567 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19568 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019569 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19570 msm_routing_get_port_mixer,
19571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019572 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19573 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019574 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19575 msm_routing_get_port_mixer,
19576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019577 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19578 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019579 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19580 msm_routing_get_port_mixer,
19581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019582 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19583 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019584 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19585 msm_routing_get_port_mixer,
19586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019587 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19588 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019589 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19590 msm_routing_get_port_mixer,
19591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019592 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19593 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019594 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19595 msm_routing_get_port_mixer,
19596 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019597 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19598 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019599 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19600 msm_routing_get_port_mixer,
19601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019602 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19603 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019604 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19605 msm_routing_get_port_mixer,
19606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019607 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19608 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019609 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19610 msm_routing_get_port_mixer,
19611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019612 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19613 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019614 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19615 msm_routing_get_port_mixer,
19616 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019617 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19618 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19619 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19620 msm_routing_get_port_mixer,
19621 msm_routing_put_port_mixer),
19622 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19623 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19624 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19625 msm_routing_get_port_mixer,
19626 msm_routing_put_port_mixer),
19627 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19628 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19629 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19630 msm_routing_get_port_mixer,
19631 msm_routing_put_port_mixer),
19632 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19633 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19634 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19635 msm_routing_get_port_mixer,
19636 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019637};
19638
19639static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019640 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19641 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019642 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19643 msm_routing_get_port_mixer,
19644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019645 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19646 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019647 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19648 msm_routing_get_port_mixer,
19649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019650 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19651 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019652 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19653 msm_routing_get_port_mixer,
19654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019655 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19656 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019657 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19658 msm_routing_get_port_mixer,
19659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019660 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19661 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019662 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19663 msm_routing_get_port_mixer,
19664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019665 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19666 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019667 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19668 msm_routing_get_port_mixer,
19669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019670 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19671 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019672 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19673 msm_routing_get_port_mixer,
19674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019675 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19676 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019677 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19678 msm_routing_get_port_mixer,
19679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019680 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19681 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019682 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19683 msm_routing_get_port_mixer,
19684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019685 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19686 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019687 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19688 msm_routing_get_port_mixer,
19689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019690 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19691 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019692 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19693 msm_routing_get_port_mixer,
19694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019695 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19696 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019697 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19698 msm_routing_get_port_mixer,
19699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019700 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19701 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019702 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19703 msm_routing_get_port_mixer,
19704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019705 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19706 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019707 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19708 msm_routing_get_port_mixer,
19709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019710 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19711 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019712 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19713 msm_routing_get_port_mixer,
19714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019715 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19716 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019717 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19718 msm_routing_get_port_mixer,
19719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019720 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19721 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019722 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19723 msm_routing_get_port_mixer,
19724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019725 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19726 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019727 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19728 msm_routing_get_port_mixer,
19729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019730 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19731 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019732 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19733 msm_routing_get_port_mixer,
19734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019735 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19736 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019737 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19738 msm_routing_get_port_mixer,
19739 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019740 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19741 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19742 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19743 msm_routing_get_port_mixer,
19744 msm_routing_put_port_mixer),
19745 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19746 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19747 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19748 msm_routing_get_port_mixer,
19749 msm_routing_put_port_mixer),
19750 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19751 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19752 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19753 msm_routing_get_port_mixer,
19754 msm_routing_put_port_mixer),
19755 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19756 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19757 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19758 msm_routing_get_port_mixer,
19759 msm_routing_put_port_mixer),
19760};
19761
19762static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
19763 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19764 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19765 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19766 msm_routing_get_port_mixer,
19767 msm_routing_put_port_mixer),
19768 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19769 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19770 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19771 msm_routing_get_port_mixer,
19772 msm_routing_put_port_mixer),
19773 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19774 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19775 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19776 msm_routing_get_port_mixer,
19777 msm_routing_put_port_mixer),
19778 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19779 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19780 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19781 msm_routing_get_port_mixer,
19782 msm_routing_put_port_mixer),
19783 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19784 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19785 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19786 msm_routing_get_port_mixer,
19787 msm_routing_put_port_mixer),
19788 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19789 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19790 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19791 msm_routing_get_port_mixer,
19792 msm_routing_put_port_mixer),
19793 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19794 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19795 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19796 msm_routing_get_port_mixer,
19797 msm_routing_put_port_mixer),
19798 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19799 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19800 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19801 msm_routing_get_port_mixer,
19802 msm_routing_put_port_mixer),
19803 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19804 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19805 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19806 msm_routing_get_port_mixer,
19807 msm_routing_put_port_mixer),
19808 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19809 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19810 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19811 msm_routing_get_port_mixer,
19812 msm_routing_put_port_mixer),
19813 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19814 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19815 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19816 msm_routing_get_port_mixer,
19817 msm_routing_put_port_mixer),
19818 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19819 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19820 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19821 msm_routing_get_port_mixer,
19822 msm_routing_put_port_mixer),
19823 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19824 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19825 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19826 msm_routing_get_port_mixer,
19827 msm_routing_put_port_mixer),
19828 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19829 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19830 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19831 msm_routing_get_port_mixer,
19832 msm_routing_put_port_mixer),
19833 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19834 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19835 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19836 msm_routing_get_port_mixer,
19837 msm_routing_put_port_mixer),
19838 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19839 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19840 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19841 msm_routing_get_port_mixer,
19842 msm_routing_put_port_mixer),
19843 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19844 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19845 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19846 msm_routing_get_port_mixer,
19847 msm_routing_put_port_mixer),
19848 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19849 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19850 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19851 msm_routing_get_port_mixer,
19852 msm_routing_put_port_mixer),
19853 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19854 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19855 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19856 msm_routing_get_port_mixer,
19857 msm_routing_put_port_mixer),
19858 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19859 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19860 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19861 msm_routing_get_port_mixer,
19862 msm_routing_put_port_mixer),
19863 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19864 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19865 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19866 msm_routing_get_port_mixer,
19867 msm_routing_put_port_mixer),
19868 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19869 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19870 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19871 msm_routing_get_port_mixer,
19872 msm_routing_put_port_mixer),
19873 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19874 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19875 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19876 msm_routing_get_port_mixer,
19877 msm_routing_put_port_mixer),
19878 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19879 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19880 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19881 msm_routing_get_port_mixer,
19882 msm_routing_put_port_mixer),
19883};
19884
19885static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
19886 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19887 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19888 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19889 msm_routing_get_port_mixer,
19890 msm_routing_put_port_mixer),
19891 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19892 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19893 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19894 msm_routing_get_port_mixer,
19895 msm_routing_put_port_mixer),
19896 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19897 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19898 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19899 msm_routing_get_port_mixer,
19900 msm_routing_put_port_mixer),
19901 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19902 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19903 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19904 msm_routing_get_port_mixer,
19905 msm_routing_put_port_mixer),
19906 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19907 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19908 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19909 msm_routing_get_port_mixer,
19910 msm_routing_put_port_mixer),
19911 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19912 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19913 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19914 msm_routing_get_port_mixer,
19915 msm_routing_put_port_mixer),
19916 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19917 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19918 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19919 msm_routing_get_port_mixer,
19920 msm_routing_put_port_mixer),
19921 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19922 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19923 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19924 msm_routing_get_port_mixer,
19925 msm_routing_put_port_mixer),
19926 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19927 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19928 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19929 msm_routing_get_port_mixer,
19930 msm_routing_put_port_mixer),
19931 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19932 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19933 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19934 msm_routing_get_port_mixer,
19935 msm_routing_put_port_mixer),
19936 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19937 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19938 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19939 msm_routing_get_port_mixer,
19940 msm_routing_put_port_mixer),
19941 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19942 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19943 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19944 msm_routing_get_port_mixer,
19945 msm_routing_put_port_mixer),
19946 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19947 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19948 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19949 msm_routing_get_port_mixer,
19950 msm_routing_put_port_mixer),
19951 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19952 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19953 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19954 msm_routing_get_port_mixer,
19955 msm_routing_put_port_mixer),
19956 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19957 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19958 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19959 msm_routing_get_port_mixer,
19960 msm_routing_put_port_mixer),
19961 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19962 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19963 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19964 msm_routing_get_port_mixer,
19965 msm_routing_put_port_mixer),
19966 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19967 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19968 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19969 msm_routing_get_port_mixer,
19970 msm_routing_put_port_mixer),
19971 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19972 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19973 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19974 msm_routing_get_port_mixer,
19975 msm_routing_put_port_mixer),
19976 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19977 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19978 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19979 msm_routing_get_port_mixer,
19980 msm_routing_put_port_mixer),
19981 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19982 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19983 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19984 msm_routing_get_port_mixer,
19985 msm_routing_put_port_mixer),
19986 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19987 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19988 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19989 msm_routing_get_port_mixer,
19990 msm_routing_put_port_mixer),
19991 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19992 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19993 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19994 msm_routing_get_port_mixer,
19995 msm_routing_put_port_mixer),
19996 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19997 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19998 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19999 msm_routing_get_port_mixer,
20000 msm_routing_put_port_mixer),
20001 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20002 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20003 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20004 msm_routing_get_port_mixer,
20005 msm_routing_put_port_mixer),
20006};
20007
20008static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20009 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20010 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20011 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20012 msm_routing_get_port_mixer,
20013 msm_routing_put_port_mixer),
20014 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20015 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20016 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20017 msm_routing_get_port_mixer,
20018 msm_routing_put_port_mixer),
20019 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20020 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20021 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20022 msm_routing_get_port_mixer,
20023 msm_routing_put_port_mixer),
20024 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20025 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20026 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20027 msm_routing_get_port_mixer,
20028 msm_routing_put_port_mixer),
20029 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20030 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20031 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20032 msm_routing_get_port_mixer,
20033 msm_routing_put_port_mixer),
20034 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20035 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20036 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20037 msm_routing_get_port_mixer,
20038 msm_routing_put_port_mixer),
20039 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20040 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20041 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20042 msm_routing_get_port_mixer,
20043 msm_routing_put_port_mixer),
20044 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20045 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20046 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20047 msm_routing_get_port_mixer,
20048 msm_routing_put_port_mixer),
20049 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20050 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20051 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20052 msm_routing_get_port_mixer,
20053 msm_routing_put_port_mixer),
20054 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20055 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20056 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20057 msm_routing_get_port_mixer,
20058 msm_routing_put_port_mixer),
20059 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20060 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20061 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20062 msm_routing_get_port_mixer,
20063 msm_routing_put_port_mixer),
20064 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20065 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20066 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20067 msm_routing_get_port_mixer,
20068 msm_routing_put_port_mixer),
20069 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20070 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20071 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20072 msm_routing_get_port_mixer,
20073 msm_routing_put_port_mixer),
20074 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20075 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20076 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20077 msm_routing_get_port_mixer,
20078 msm_routing_put_port_mixer),
20079 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20080 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20081 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20082 msm_routing_get_port_mixer,
20083 msm_routing_put_port_mixer),
20084 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20085 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20086 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20087 msm_routing_get_port_mixer,
20088 msm_routing_put_port_mixer),
20089 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20090 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20091 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20092 msm_routing_get_port_mixer,
20093 msm_routing_put_port_mixer),
20094 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20095 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20096 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20097 msm_routing_get_port_mixer,
20098 msm_routing_put_port_mixer),
20099 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20100 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20101 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20102 msm_routing_get_port_mixer,
20103 msm_routing_put_port_mixer),
20104 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20105 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20106 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20107 msm_routing_get_port_mixer,
20108 msm_routing_put_port_mixer),
20109 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20110 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20111 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20112 msm_routing_get_port_mixer,
20113 msm_routing_put_port_mixer),
20114 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20115 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20116 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20117 msm_routing_get_port_mixer,
20118 msm_routing_put_port_mixer),
20119 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20120 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20121 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20122 msm_routing_get_port_mixer,
20123 msm_routing_put_port_mixer),
20124 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20125 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20126 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20127 msm_routing_get_port_mixer,
20128 msm_routing_put_port_mixer),
20129};
20130
20131static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20132 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20133 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20134 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20135 msm_routing_get_port_mixer,
20136 msm_routing_put_port_mixer),
20137 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20138 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20139 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20140 msm_routing_get_port_mixer,
20141 msm_routing_put_port_mixer),
20142 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20143 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20144 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20145 msm_routing_get_port_mixer,
20146 msm_routing_put_port_mixer),
20147 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20148 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20149 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20150 msm_routing_get_port_mixer,
20151 msm_routing_put_port_mixer),
20152 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20153 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20154 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20155 msm_routing_get_port_mixer,
20156 msm_routing_put_port_mixer),
20157 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20158 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20159 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20160 msm_routing_get_port_mixer,
20161 msm_routing_put_port_mixer),
20162 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20163 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20164 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20165 msm_routing_get_port_mixer,
20166 msm_routing_put_port_mixer),
20167 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20168 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20169 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20170 msm_routing_get_port_mixer,
20171 msm_routing_put_port_mixer),
20172 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20173 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20174 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20175 msm_routing_get_port_mixer,
20176 msm_routing_put_port_mixer),
20177 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20178 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20179 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20180 msm_routing_get_port_mixer,
20181 msm_routing_put_port_mixer),
20182 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20183 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20184 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20185 msm_routing_get_port_mixer,
20186 msm_routing_put_port_mixer),
20187 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20188 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20189 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20190 msm_routing_get_port_mixer,
20191 msm_routing_put_port_mixer),
20192 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20193 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20194 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20195 msm_routing_get_port_mixer,
20196 msm_routing_put_port_mixer),
20197 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20198 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20199 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20200 msm_routing_get_port_mixer,
20201 msm_routing_put_port_mixer),
20202 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20203 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20204 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20205 msm_routing_get_port_mixer,
20206 msm_routing_put_port_mixer),
20207 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20208 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20209 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20210 msm_routing_get_port_mixer,
20211 msm_routing_put_port_mixer),
20212 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20213 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20214 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20215 msm_routing_get_port_mixer,
20216 msm_routing_put_port_mixer),
20217 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20218 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20219 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20220 msm_routing_get_port_mixer,
20221 msm_routing_put_port_mixer),
20222 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20223 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20224 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20225 msm_routing_get_port_mixer,
20226 msm_routing_put_port_mixer),
20227 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20228 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20229 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20230 msm_routing_get_port_mixer,
20231 msm_routing_put_port_mixer),
20232 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20233 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20234 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20235 msm_routing_get_port_mixer,
20236 msm_routing_put_port_mixer),
20237 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20238 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20239 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20240 msm_routing_get_port_mixer,
20241 msm_routing_put_port_mixer),
20242 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20243 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20244 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20245 msm_routing_get_port_mixer,
20246 msm_routing_put_port_mixer),
20247 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20248 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20249 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20250 msm_routing_get_port_mixer,
20251 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020252};
20253
Han Lu7b6c5882019-06-09 16:03:21 +080020254static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070020255 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
20256 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20257 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
20258 msm_routing_get_port_mixer,
20259 msm_routing_put_port_mixer),
20260 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20261 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20262 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20263 msm_routing_get_port_mixer,
20264 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080020265 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20266 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20267 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20268 msm_routing_get_port_mixer,
20269 msm_routing_put_port_mixer),
20270};
20271
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020272static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020273 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20274 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020275 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020277 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20278 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020279 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020281 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20282 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020283 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020285 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20286 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020287 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020289 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20290 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020291 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20292 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020293 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20294 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
20295 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020297 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20298 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020299 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020301 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20302 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020303 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20304 msm_routing_put_port_mixer),
20305};
20306
20307static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020308 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20309 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020310 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020312 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20313 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020314 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020316 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20317 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020318 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020320 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20321 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020322 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020324 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20325 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020326 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20327 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020328 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20329 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
20330 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020332 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20333 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020334 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020336 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20337 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020338 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
20339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020340 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20341 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020342 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020344 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20345 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080020346 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
20347 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020348};
20349
20350static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020351 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20352 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020353 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20354 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020355 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20356 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020357 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20358 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020359 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20360 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020361 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20362 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020363 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20364 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020365 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20366 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020367 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20368 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020369 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20370 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020371 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20372 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020373 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20374 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020375 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20376 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020377 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20378 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020379 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20380 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020381 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20382 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020383 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20384 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20385 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20386 msm_routing_put_listen_mixer),
20387 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20388 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20389 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20390 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020391 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20392 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20393 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20394 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020395 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20396 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20397 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20398 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020399 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20400 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20401 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20402 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020403};
20404
20405static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020406 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20407 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020408 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20409 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020410 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
20411 SND_SOC_NOPM,
20412 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020413 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20414 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020415 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20416 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020417 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20418 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020419 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20420 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020421 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20422 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020423 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20424 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020425 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20426 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020427 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20428 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020429 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20430 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020431 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20432 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020433 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20434 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020435 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20436 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020437 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20438 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020439 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20440 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20441 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20442 msm_routing_put_listen_mixer),
20443 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20444 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20445 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20446 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020447 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20448 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20449 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20450 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20453 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20454 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020455 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20456 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20457 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20458 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020459};
20460
20461static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020462 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20463 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020464 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20465 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020466 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20467 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020468 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20469 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020470 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20471 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020472 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20473 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020474 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20475 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020476 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20477 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020478 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20479 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020480 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20481 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020482 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20483 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020484 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20485 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020486 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20487 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020488 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20489 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020490 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20491 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020492 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20493 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020494 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20495 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20496 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20497 msm_routing_put_listen_mixer),
20498 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20499 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20500 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20501 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020502 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20503 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20504 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20505 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020506 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20507 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20508 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20509 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020510 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20511 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20512 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20513 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020514};
20515
20516static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020517 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20518 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020519 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20520 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020521 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20522 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020523 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20524 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020525 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20526 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020527 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20528 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020529 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20530 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020531 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20532 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020533 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20534 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020535 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20536 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020537 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20538 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020539 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20540 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020541 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20542 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020543 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20544 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020545 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20546 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020547 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20548 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020549 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20550 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20551 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20552 msm_routing_put_listen_mixer),
20553 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20554 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20555 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20556 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020557 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20558 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20559 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20560 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020561 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20562 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20563 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20564 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020565 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20566 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20567 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20568 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020569};
20570
20571static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020572 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20573 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020574 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20575 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020576 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20577 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020578 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20579 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020580 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20581 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020582 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20583 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020584 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20585 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020586 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20587 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020588 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20589 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020590 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20591 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020592 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20593 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020594 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20595 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020596 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20597 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020598 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20599 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020600 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20601 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020602 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20603 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020604 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20605 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20606 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20607 msm_routing_put_listen_mixer),
20608 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20609 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20610 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20611 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020612 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20613 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20614 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20615 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020616 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20617 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20618 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20619 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020620 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20621 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20622 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20623 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020624};
20625
20626static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020627 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20628 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020629 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20630 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020631 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20632 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020633 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20634 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020635 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20636 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020637 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20638 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020639 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20640 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020641 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20642 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020643 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20644 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020645 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20646 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020647 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20648 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020649 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20650 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020651 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20652 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020653 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20654 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020655 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20656 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020657 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20658 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020659 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20660 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20661 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20662 msm_routing_put_listen_mixer),
20663 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20664 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20665 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20666 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020667 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20668 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20669 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20670 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020671 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20672 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20673 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20674 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020675 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20676 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20677 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20678 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020679};
20680
20681static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020682 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20683 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020684 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20685 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020686 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20687 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020688 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20689 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020690 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20691 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020692 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20693 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020694 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20695 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020696 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20697 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020698 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20699 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020700 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20701 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020702 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20703 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020704 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20705 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020706 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20707 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020708 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20709 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020710 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20711 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020712 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20713 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020714 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20715 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20716 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20717 msm_routing_put_listen_mixer),
20718 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20719 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20720 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20721 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020722 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20723 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20724 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20725 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020726 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20727 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20728 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20729 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020730 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20731 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20732 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20733 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020734};
20735
20736static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020737 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20738 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020739 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20740 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020741 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20742 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020743 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20744 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020745 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20746 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020747 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20748 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020749 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20750 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020751 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20752 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020753 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20754 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020755 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20756 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020757 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20758 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020759 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20760 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020761 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20762 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020763 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20764 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020765 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20766 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020767 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20768 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020769 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20770 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20771 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20772 msm_routing_put_listen_mixer),
20773 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20774 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20775 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20776 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020777 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20778 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20779 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20780 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020781 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20782 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20783 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20784 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020785 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20786 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20787 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20788 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020789};
20790
20791static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
20792 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20793 0, 1, 0, msm_routing_get_switch_mixer,
20794 msm_routing_put_switch_mixer);
20795
20796static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
20797 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20798 0, 1, 0, msm_routing_get_switch_mixer,
20799 msm_routing_put_switch_mixer);
20800
20801static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
20802 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20803 0, 1, 0, msm_routing_get_switch_mixer,
20804 msm_routing_put_switch_mixer);
20805
20806static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
20807 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20808 0, 1, 0, msm_routing_get_switch_mixer,
20809 msm_routing_put_switch_mixer);
20810
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053020811static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
20812 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20813 0, 1, 0, msm_routing_get_switch_mixer,
20814 msm_routing_put_switch_mixer);
20815
20816static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053020817 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20818 0, 1, 0, msm_routing_get_switch_mixer,
20819 msm_routing_put_switch_mixer);
20820
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020821static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
20822 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20823 0, 1, 0, msm_routing_get_switch_mixer,
20824 msm_routing_put_switch_mixer);
20825
20826static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
20827 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20828 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
20829 msm_routing_put_fm_pcmrx_switch_mixer);
20830
20831static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
20832 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20833 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
20834 msm_routing_put_int0_mi2s_switch_mixer);
20835
20836static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
20837 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20838 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
20839 msm_routing_put_int4_mi2s_switch_mixer);
20840
20841static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
20842 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20843 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
20844 msm_routing_put_pri_mi2s_switch_mixer);
20845
20846static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
20847 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20848 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
20849 msm_routing_put_sec_mi2s_switch_mixer);
20850
20851static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
20852 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20853 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
20854 msm_routing_put_tert_mi2s_switch_mixer);
20855
20856static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
20857 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20858 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
20859 msm_routing_put_quat_mi2s_switch_mixer);
20860
Rohit Kumara5077932017-09-10 22:05:05 +053020861static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
20862 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20863 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
20864 msm_routing_put_quin_mi2s_switch_mixer);
20865
Karthikeyan Manic3700752019-03-11 18:33:53 -070020866static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
20867 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20868 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
20869 msm_routing_put_sen_mi2s_switch_mixer);
20870
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020871static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
20872 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20873 0, 1, 0, msm_routing_get_hfp_switch_mixer,
20874 msm_routing_put_hfp_switch_mixer);
20875
20876static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
20877 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20878 0, 1, 0, msm_routing_get_hfp_switch_mixer,
20879 msm_routing_put_hfp_switch_mixer);
20880
20881static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
20882 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20883 0, 1, 0, msm_routing_get_hfp_switch_mixer,
20884 msm_routing_put_hfp_switch_mixer);
20885
20886static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
20887 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20888 0, 1, 0, msm_routing_get_hfp_switch_mixer,
20889 msm_routing_put_hfp_switch_mixer);
20890
20891static const struct snd_kcontrol_new usb_switch_mixer_controls =
20892 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20893 0, 1, 0, msm_routing_get_usb_switch_mixer,
20894 msm_routing_put_usb_switch_mixer);
20895
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080020896static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
20897 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20898 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
20899 msm_routing_a2dp_switch_mixer_put);
20900
Zhou Songcaa541d2019-02-19 18:37:47 +080020901static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
20902 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20903 0, 1, 0, msm_routing_sco_switch_mixer_get,
20904 msm_routing_sco_switch_mixer_put);
20905
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020906static const struct soc_enum lsm_port_enum =
20907 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
20908
20909static const char * const lsm_func_text[] = {
20910 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
20911};
20912static const struct soc_enum lsm_func_enum =
20913 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
20914
20915static const struct snd_kcontrol_new lsm_controls[] = {
20916 /* kcontrol of lsm_function */
20917 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20918 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20919 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20920 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20921 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20922 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20923 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20924 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20925 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20926 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20927 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20928 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20929 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20930 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20931 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20932 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20933 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20934 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020935 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20936 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020937 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20938 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020939 /* kcontrol of lsm_port */
20940 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
20941 msm_routing_lsm_port_get,
20942 msm_routing_lsm_port_put),
20943 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
20944 msm_routing_lsm_port_get,
20945 msm_routing_lsm_port_put),
20946 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
20947 msm_routing_lsm_port_get,
20948 msm_routing_lsm_port_put),
20949 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
20950 msm_routing_lsm_port_get,
20951 msm_routing_lsm_port_put),
20952 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
20953 msm_routing_lsm_port_get,
20954 msm_routing_lsm_port_put),
20955 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
20956 msm_routing_lsm_port_get,
20957 msm_routing_lsm_port_put),
20958 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
20959 msm_routing_lsm_port_get,
20960 msm_routing_lsm_port_put),
20961 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
20962 msm_routing_lsm_port_get,
20963 msm_routing_lsm_port_put),
20964};
20965
20966static const char * const aanc_slim_0_rx_text[] = {
20967 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
20968 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
20969};
20970
20971static const struct soc_enum aanc_slim_0_rx_enum =
20972 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
20973 aanc_slim_0_rx_text);
20974
20975static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
20976 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
20977 msm_routing_slim_0_rx_aanc_mux_get,
20978 msm_routing_slim_0_rx_aanc_mux_put)
20979};
20980
Sudheer Papothic07b37a2018-05-04 05:56:47 +053020981static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
20982 struct snd_ctl_elem_value *ucontrol)
20983{
20984 ucontrol->value.integer.value[0] = aanc_level;
20985
20986 return 0;
20987}
20988
20989static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
20990 struct snd_ctl_elem_value *ucontrol)
20991{
20992 int ret = 0;
20993
20994 mutex_lock(&routing_lock);
20995 aanc_level = ucontrol->value.integer.value[0];
20996 pr_debug("%s: value: %ld\n",
20997 __func__, ucontrol->value.integer.value[0]);
20998 ret = afe_set_aanc_noise_level(aanc_level);
20999 mutex_unlock(&routing_lock);
21000
21001 return ret;
21002}
21003
21004static const struct snd_kcontrol_new aanc_noise_level[] = {
21005 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21006 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21007};
21008
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021009static int msm_routing_get_stereo_to_custom_stereo_control(
21010 struct snd_kcontrol *kcontrol,
21011 struct snd_ctl_elem_value *ucontrol)
21012{
21013 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21014 return 0;
21015}
21016
21017static int msm_routing_put_stereo_to_custom_stereo_control(
21018 struct snd_kcontrol *kcontrol,
21019 struct snd_ctl_elem_value *ucontrol)
21020{
21021 int flag = 0, i = 0, rc = 0, idx = 0;
21022 int be_index = 0, port_id, topo_id;
21023 unsigned int session_id = 0;
21024 uint16_t op_FL_ip_FL_weight = 0;
21025 uint16_t op_FL_ip_FR_weight = 0;
21026 uint16_t op_FR_ip_FL_weight = 0;
21027 uint16_t op_FR_ip_FR_weight = 0;
21028
21029 flag = ucontrol->value.integer.value[0];
21030 pr_debug("%s E flag %d\n", __func__, flag);
21031
21032 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21033 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21034 __func__, is_custom_stereo_on, flag);
21035 return 0;
21036 }
21037 is_custom_stereo_on = flag ? true : false;
21038 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21039 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21040 port_id = msm_bedais[be_index].port_id;
21041 if (!msm_bedais[be_index].active)
21042 continue;
21043 if ((port_id != SLIMBUS_0_RX) &&
21044 (port_id != RT_PROXY_PORT_001_RX) &&
21045 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21046 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21047 continue;
21048
21049 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21050 MSM_FRONTEND_DAI_MM_SIZE) {
21051 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21052 LEGACY_PCM_MODE)
21053 goto skip_send_custom_stereo;
21054 session_id =
21055 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21056 if (is_custom_stereo_on) {
21057 op_FL_ip_FL_weight =
21058 Q14_GAIN_ZERO_POINT_FIVE;
21059 op_FL_ip_FR_weight =
21060 Q14_GAIN_ZERO_POINT_FIVE;
21061 op_FR_ip_FL_weight =
21062 Q14_GAIN_ZERO_POINT_FIVE;
21063 op_FR_ip_FR_weight =
21064 Q14_GAIN_ZERO_POINT_FIVE;
21065 } else {
21066 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21067 op_FL_ip_FR_weight = 0;
21068 op_FR_ip_FL_weight = 0;
21069 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21070 }
21071 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21072 unsigned long copp =
21073 session_copp_map[i]
21074 [SESSION_TYPE_RX][be_index];
21075 if (!test_bit(idx, &copp))
21076 goto skip_send_custom_stereo;
21077 topo_id = adm_get_topology_for_port_copp_idx(
21078 msm_bedais[be_index].port_id, idx);
21079 if (topo_id < 0)
21080 pr_debug("%s:Err:custom stereo topo %d",
21081 __func__, topo_id);
21082 pr_debug("idx %d\n", idx);
21083 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21084 rc = msm_ds2_dap_set_custom_stereo_onoff
21085 (msm_bedais[be_index].port_id,
21086 idx, is_custom_stereo_on);
21087 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21088 rc = dolby_dap_set_custom_stereo_onoff(
21089 msm_bedais[be_index].port_id,
21090 idx, is_custom_stereo_on);
21091 else
21092 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21093 (msm_bedais[be_index].port_id,
21094 idx, session_id,
21095 op_FL_ip_FL_weight,
21096 op_FL_ip_FR_weight,
21097 op_FR_ip_FL_weight,
21098 op_FR_ip_FR_weight);
21099 if (rc < 0)
21100skip_send_custom_stereo:
21101 pr_err("%s: err setting custom stereo\n",
21102 __func__);
21103 }
21104
21105 }
21106 }
21107 return 0;
21108}
21109
21110static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21111 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21112 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21113 msm_routing_put_stereo_to_custom_stereo_control),
21114};
21115
21116static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21117 struct snd_ctl_elem_value *ucontrol)
21118{
21119 return 0;
21120}
21121
21122static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21123 struct snd_ctl_elem_value *ucontrol)
21124{
21125 int i = 0, j;
21126 int num_app_types = ucontrol->value.integer.value[i++];
21127
21128 pr_debug("%s\n", __func__);
21129
21130 memset(app_type_cfg, 0, MAX_APP_TYPES*
21131 sizeof(struct msm_pcm_routing_app_type_data));
21132 if (num_app_types > MAX_APP_TYPES) {
21133 pr_err("%s: number of app types exceed the max supported\n",
21134 __func__);
21135 return -EINVAL;
21136 }
21137 for (j = 0; j < num_app_types; j++) {
21138 app_type_cfg[j].app_type =
21139 ucontrol->value.integer.value[i++];
21140 app_type_cfg[j].sample_rate =
21141 ucontrol->value.integer.value[i++];
21142 app_type_cfg[j].bit_width =
21143 ucontrol->value.integer.value[i++];
21144 }
21145
21146 return 0;
21147}
21148
21149static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
21150 struct snd_ctl_elem_value *ucontrol)
21151{
21152 int j, fe_id, be_id, port_type;
21153 int ret = 0;
21154 unsigned long copp;
21155 struct msm_pcm_routing_bdai_data *bedai;
21156 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21157 SESSION_TYPE_RX;
21158 int app_type = ucontrol->value.integer.value[1];
21159 int gain = (ucontrol->value.integer.value[2] +
21160 ucontrol->value.integer.value[3])/2;
21161
21162 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21163 MSM_AFE_PORT_TYPE_TX;
21164
21165 mutex_lock(&routing_lock);
21166 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21167 if (is_be_dai_extproc(be_id))
21168 continue;
21169
21170 bedai = &msm_bedais[be_id];
21171 if (afe_get_port_type(bedai->port_id) != port_type)
21172 continue;
21173
21174 if (!bedai->active)
21175 continue;
21176
21177 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21178 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21179 continue;
21180
21181 if (app_type !=
21182 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21183 continue;
21184
21185 copp = session_copp_map[fe_id][dir][be_id];
21186 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
21187 if (!test_bit(j, &copp))
21188 continue;
21189 ret |= adm_set_volume(bedai->port_id, j, gain);
21190 }
21191 }
21192 }
21193 mutex_unlock(&routing_lock);
21194 return ret ? -EINVAL : 0;
21195}
21196
21197static const struct snd_kcontrol_new app_type_cfg_controls[] = {
21198 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080021199 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021200 msm_routing_put_app_type_cfg_control),
21201 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
21202 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
21203};
21204
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021205static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
21206 struct snd_ctl_elem_value *ucontrol)
21207{
21208 int copp_idx, fe_id, be_id, port_type;
21209 int ret = 0;
21210 unsigned long copp;
21211 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021212 u8 *packed_params = NULL;
21213 struct param_hdr_v3 param_hdr;
21214 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
21215 sizeof(uint32_t));
21216
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021217 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21218 SESSION_TYPE_RX;
21219 int app_type = ucontrol->value.integer.value[1];
21220 int module_id = ucontrol->value.integer.value[2];
21221 int instance_id = ucontrol->value.integer.value[3];
21222 int param_id = ucontrol->value.integer.value[4];
21223 int param_value = ucontrol->value.integer.value[5];
21224
21225 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21226 MSM_AFE_PORT_TYPE_TX;
21227 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
21228 __func__, app_type, module_id,
21229 instance_id, param_id, param_value);
21230
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021231 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
21232 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021233 return -ENOMEM;
21234
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021235 memset(&param_hdr, 0, sizeof(param_hdr));
21236 param_hdr.module_id = module_id;
21237 param_hdr.instance_id = instance_id;
21238 param_hdr.param_id = param_id;
21239 param_hdr.param_size = sizeof(uint32_t);
21240
21241 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021242
21243 mutex_lock(&routing_lock);
21244 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21245 if (is_be_dai_extproc(be_id))
21246 continue;
21247
21248 bedai = &msm_bedais[be_id];
21249 if (afe_get_port_type(bedai->port_id) != port_type)
21250 continue;
21251
21252 if (!bedai->active)
21253 continue;
21254
21255 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21256 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21257 continue;
21258
21259 if (app_type !=
21260 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21261 continue;
21262
21263 copp = session_copp_map[fe_id][dir][be_id];
21264 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
21265 copp_idx++) {
21266 if (!test_bit(copp_idx, &copp))
21267 continue;
21268
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021269 ret = q6common_pack_pp_params(packed_params,
21270 &param_hdr,
21271 (u8 *) &param_value,
21272 &packed_param_size);
21273 if (ret) {
21274 pr_err("%s: Failed to pack params, error %d\n",
21275 __func__, ret);
21276 goto done;
21277 }
21278
21279 ret = adm_set_pp_params(bedai->port_id,
21280 copp_idx, NULL,
21281 packed_params,
21282 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021283 if (ret) {
21284 pr_err("%s: Setting param failed with err=%d\n",
21285 __func__, ret);
21286 ret = -EINVAL;
21287 goto done;
21288 }
21289 }
21290 }
21291 }
21292done:
21293 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021294 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021295 return ret;
21296}
21297
21298static const struct snd_kcontrol_new module_cfg_controls[] = {
21299 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
21300 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
21301};
21302
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021303static int msm_routing_get_lsm_app_type_cfg_control(
21304 struct snd_kcontrol *kcontrol,
21305 struct snd_ctl_elem_value *ucontrol)
21306{
Meng Wangadbca4f2018-10-29 14:30:13 +080021307 int shift = ((struct soc_multi_mixer_control *)
21308 kcontrol->private_value)->shift;
21309 int i = 0, j = 0;
21310
21311 ucontrol->value.integer.value[i] = num_app_cfg_types;
21312
21313 for (j = 0; j < num_app_cfg_types; ++j) {
21314 ucontrol->value.integer.value[++i] =
21315 lsm_app_type_cfg[j].app_type;
21316 ucontrol->value.integer.value[++i] =
21317 lsm_app_type_cfg[j].sample_rate;
21318 ucontrol->value.integer.value[++i] =
21319 lsm_app_type_cfg[j].bit_width;
21320 if (shift == 1)
21321 ucontrol->value.integer.value[++i] =
21322 lsm_app_type_cfg[j].num_out_channels;
21323 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021324 return 0;
21325}
21326
21327static int msm_routing_put_lsm_app_type_cfg_control(
21328 struct snd_kcontrol *kcontrol,
21329 struct snd_ctl_elem_value *ucontrol)
21330{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021331 int shift = ((struct soc_multi_mixer_control *)
21332 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021333 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021334
Meng Wangadbca4f2018-10-29 14:30:13 +080021335 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021336 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021337 sizeof(struct msm_pcm_routing_app_type_data));
21338
Meng Wangadbca4f2018-10-29 14:30:13 +080021339 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021340 pr_err("%s: number of app types exceed the max supported\n",
21341 __func__);
21342 return -EINVAL;
21343 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021344
Meng Wangadbca4f2018-10-29 14:30:13 +080021345 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021346 lsm_app_type_cfg[j].app_type =
21347 ucontrol->value.integer.value[i++];
21348 lsm_app_type_cfg[j].sample_rate =
21349 ucontrol->value.integer.value[i++];
21350 lsm_app_type_cfg[j].bit_width =
21351 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021352 /* Shift of 1 indicates this is V2 mixer control */
21353 if (shift == 1)
21354 lsm_app_type_cfg[j].num_out_channels =
21355 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021356 }
21357
21358 return 0;
21359}
21360
21361static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
21362 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
21363 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21364 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021365 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
21366 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21367 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021368};
21369
21370static int msm_routing_get_use_ds1_or_ds2_control(
21371 struct snd_kcontrol *kcontrol,
21372 struct snd_ctl_elem_value *ucontrol)
21373{
21374 ucontrol->value.integer.value[0] = is_ds2_on;
21375 return 0;
21376}
21377
21378static int msm_routing_put_use_ds1_or_ds2_control(
21379 struct snd_kcontrol *kcontrol,
21380 struct snd_ctl_elem_value *ucontrol)
21381{
21382 is_ds2_on = ucontrol->value.integer.value[0];
21383 return 0;
21384}
21385
21386static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
21387 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
21388 1, 0, msm_routing_get_use_ds1_or_ds2_control,
21389 msm_routing_put_use_ds1_or_ds2_control),
21390};
21391
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053021392static int msm_routing_get_hifi_filter_control(
21393 struct snd_kcontrol *kcontrol,
21394 struct snd_ctl_elem_value *ucontrol)
21395{
21396 ucontrol->value.integer.value[0] = hifi_filter_enabled;
21397 return 0;
21398}
21399
21400static int msm_routing_put_hifi_filter_control(
21401 struct snd_kcontrol *kcontrol,
21402 struct snd_ctl_elem_value *ucontrol)
21403{
21404 hifi_filter_enabled = ucontrol->value.integer.value[0];
21405 return 0;
21406}
21407
21408static const struct snd_kcontrol_new hifi_filter_controls[] = {
21409 SOC_SINGLE_EXT("HiFi Filter", SND_SOC_NOPM, 0,
21410 1, 0, msm_routing_get_hifi_filter_control,
21411 msm_routing_put_hifi_filter_control),
21412};
21413
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021414int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
21415 struct snd_ctl_elem_value *ucontrol) {
21416 int rc = 0;
21417 int be_idx = 0;
21418 char *param_value;
21419 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021420 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
21421 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021422
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021423 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021424 if (!param_value)
21425 return -ENOMEM;
21426
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021427 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021428 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
21429 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
21430 break;
21431 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021432 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
21433 param_hdr.instance_id = INSTANCE_ID_0;
21434 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
21435 param_hdr.param_size = param_size;
21436 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
21437 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021438 if (rc) {
21439 pr_err("%s: get parameters failed:%d\n", __func__, rc);
21440 kfree(param_value);
21441 return -EINVAL;
21442 }
21443 update_param_value = (int *)param_value;
21444 ucontrol->value.integer.value[0] = update_param_value[0];
21445
21446 pr_debug("%s: FROM DSP value[0] 0x%x\n",
21447 __func__, update_param_value[0]);
21448 }
21449 kfree(param_value);
21450 return 0;
21451}
21452
21453static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
21454 struct snd_ctl_elem_value *ucontrol)
21455{
21456 voc_session_id = ucontrol->value.integer.value[0];
21457
21458 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
21459
21460 return 0;
21461}
21462
21463static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
21464 struct snd_ctl_elem_value *ucontrol)
21465{
21466 ucontrol->value.integer.value[0] = voc_session_id;
21467
21468 return 0;
21469}
21470
21471static struct snd_kcontrol_new msm_voc_session_controls[] = {
21472 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
21473 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
21474 msm_voc_session_id_put),
21475};
21476
21477static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
21478 struct snd_ctl_elem_info *uinfo)
21479{
21480 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21481 uinfo->count = sizeof(struct sound_focus_param);
21482
21483 return 0;
21484}
21485
21486static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
21487 struct snd_ctl_elem_value *ucontrol)
21488{
21489 int ret = 0;
21490 struct sound_focus_param soundFocusData;
21491
21492 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
21493 sizeof(struct sound_focus_param));
21494 ret = voc_set_sound_focus(soundFocusData);
21495 if (ret) {
21496 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
21497 __func__, ret);
21498
21499 ret = -EINVAL;
21500 }
21501
21502 return ret;
21503}
21504
21505static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
21506 struct snd_ctl_elem_value *ucontrol)
21507{
21508 int ret = 0;
21509 struct sound_focus_param soundFocusData;
21510
21511 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
21512
21513 ret = voc_get_sound_focus(&soundFocusData);
21514 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021515 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021516 __func__, ret);
21517
21518 ret = -EINVAL;
21519 goto done;
21520 }
21521 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
21522 sizeof(struct sound_focus_param));
21523
21524done:
21525 return ret;
21526}
21527
21528static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
21529 struct snd_ctl_elem_info *uinfo)
21530{
21531 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21532 uinfo->count = sizeof(struct source_tracking_param);
21533
21534 return 0;
21535}
21536
21537static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
21538 struct snd_ctl_elem_value *ucontrol)
21539{
Meng Wang92edfde2018-04-24 12:18:37 +080021540 int ret = 0;
21541 struct source_tracking_param sourceTrackingData;
21542
21543 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
21544
21545 ret = voc_get_source_tracking(&sourceTrackingData);
21546 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021547 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080021548 __func__, ret);
21549
21550 ret = -EINVAL;
21551 goto done;
21552 }
21553 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
21554 sizeof(struct source_tracking_param));
21555
21556done:
21557 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021558}
21559
21560static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
21561 int *copp_idx)
21562{
21563 int i, idx, be_idx;
21564 int ret = 0;
21565 unsigned long copp;
21566
21567 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
21568
21569 ret = q6audio_validate_port(port_id);
21570 if (ret < 0) {
21571 pr_err("%s: port validation failed id 0x%x ret %d\n",
21572 __func__, port_id, ret);
21573
21574 ret = -EINVAL;
21575 goto done;
21576 }
21577
21578 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
21579 if (msm_bedais[be_idx].port_id == port_id)
21580 break;
21581 }
21582 if (be_idx >= MSM_BACKEND_DAI_MAX) {
21583 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
21584
21585 ret = -EINVAL;
21586 goto done;
21587 }
21588
21589 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021590 MSM_FRONTEND_DAI_MAX) {
21591 if (!(is_mm_lsm_fe_id(i) &&
21592 route_check_fe_id_adm_support(i)))
21593 continue;
21594
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021595 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21596 copp = session_copp_map[i]
21597 [session_type][be_idx];
21598 if (test_bit(idx, &copp))
21599 break;
21600 }
21601 if (idx >= MAX_COPPS_PER_PORT)
21602 continue;
21603 else
21604 break;
21605 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021606 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021607 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021608
21609 ret = -EINVAL;
21610 goto done;
21611 }
21612 *copp_idx = idx;
21613 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
21614
21615done:
21616 return ret;
21617}
21618
21619static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
21620 const char *prefix, int *port_id)
21621{
21622 int ret = 0;
21623
21624 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
21625
21626 /*
21627 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
21628 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
21629 * and compare the string with the backend name to derive the port id.
21630 */
21631 if (!strcmp(kcontrol->id.name + strlen(prefix),
21632 "SLIMBUS_0")) {
21633 *port_id = SLIMBUS_0_TX;
21634 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21635 "TERT_MI2S")) {
21636 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
21637 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21638 "INT3_MI2S")) {
21639 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053021640 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21641 "VA_CDC_DMA_TX_0")) {
21642 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053021643 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21644 "TX_CDC_DMA_TX_3")) {
21645 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021646 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21647 "QUIN_TDM_TX_0")) {
21648 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053021649 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21650 "PRIMARY_TDM")) {
21651 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021652 } else {
21653 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
21654 __func__, kcontrol->id.name);
21655
21656 ret = -EINVAL;
21657 goto done;
21658 }
21659 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
21660 __func__, kcontrol->id.name, *port_id);
21661
21662done:
21663 return ret;
21664}
21665
21666static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
21667 struct snd_ctl_elem_value *ucontrol)
21668{
21669 int ret = 0;
21670 struct sound_focus_param soundFocusData;
21671 int port_id, copp_idx;
21672
21673 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21674 "Sound Focus Audio Tx ", &port_id);
21675 if (ret != 0) {
21676 pr_err("%s: Error in deriving port id, err=%d\n",
21677 __func__, ret);
21678
21679 ret = -EINVAL;
21680 goto done;
21681 }
21682
21683 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21684 &copp_idx);
21685 if (ret) {
21686 pr_err("%s: Could not get copp idx for port_id=%d\n",
21687 __func__, port_id);
21688
21689 ret = -EINVAL;
21690 goto done;
21691 }
21692
21693 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
21694 sizeof(struct sound_focus_param));
21695
21696 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
21697 if (ret) {
21698 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
21699 __func__, ret);
21700
21701 ret = -EINVAL;
21702 goto done;
21703 }
21704
21705done:
21706 return ret;
21707}
21708
21709static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
21710 struct snd_ctl_elem_value *ucontrol)
21711{
21712 int ret = 0;
21713 struct sound_focus_param soundFocusData;
21714 int port_id, copp_idx;
21715
21716 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21717 "Sound Focus Audio Tx ", &port_id);
21718 if (ret) {
21719 pr_err("%s: Error in deriving port id, err=%d\n",
21720 __func__, ret);
21721
21722 ret = -EINVAL;
21723 goto done;
21724 }
21725
21726 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21727 &copp_idx);
21728 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021729 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021730 __func__, port_id);
21731
21732 ret = -EINVAL;
21733 goto done;
21734 }
21735
21736 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
21737 if (ret) {
21738 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
21739 __func__, ret);
21740
21741 ret = -EINVAL;
21742 goto done;
21743 }
21744
21745 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
21746 sizeof(struct sound_focus_param));
21747
21748done:
21749 return ret;
21750}
21751
21752static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
21753 struct snd_ctl_elem_value *ucontrol)
21754{
21755 int ret = 0;
21756 struct source_tracking_param sourceTrackingData;
21757 int port_id, copp_idx;
21758
21759 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21760 "Source Tracking Audio Tx ", &port_id);
21761 if (ret) {
21762 pr_err("%s: Error in deriving port id, err=%d\n",
21763 __func__, ret);
21764
21765 ret = -EINVAL;
21766 goto done;
21767 }
21768
21769 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21770 &copp_idx);
21771 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021772 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021773 __func__, port_id);
21774
21775 ret = -EINVAL;
21776 goto done;
21777 }
21778
21779 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
21780 if (ret) {
21781 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
21782 __func__, ret);
21783
21784 ret = -EINVAL;
21785 goto done;
21786 }
21787
21788 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
21789 sizeof(struct source_tracking_param));
21790
21791done:
21792 return ret;
21793}
21794
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021795static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
21796 struct snd_ctl_elem_info *uinfo)
21797{
21798 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21799 uinfo->count = sizeof(struct doa_tracking_mon_param);
21800
21801 return 0;
21802}
21803
21804static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
21805 struct snd_ctl_elem_value *ucontrol)
21806{
21807 int ret = 0;
21808 struct doa_tracking_mon_param doa_tracking_data;
21809 int port_id, copp_idx;
21810
21811 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
21812 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21813 "Doa Tracking Monitor Listen ", &port_id);
21814 if (ret) {
21815 pr_err("%s: Error in deriving port id, err=%d\n",
21816 __func__, ret);
21817 ret = -EINVAL;
21818 goto done;
21819 }
21820
21821 /*
21822 * If copp id exists for given port id, query adm to get doa data.
21823 * Else query afe for doa tracking params.
21824 * This is to support in cases where LSM directly connects to
21825 * AFE for FFNS.
21826 */
21827 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21828 &copp_idx);
21829 if (!ret)
21830 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
21831 &doa_tracking_data);
21832 else
21833 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
21834
21835 if (ret) {
21836 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
21837 __func__, ret);
21838 ret = -EINVAL;
21839 goto done;
21840 }
21841
21842 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
21843 sizeof(struct doa_tracking_mon_param));
21844done:
21845 return ret;
21846}
21847
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021848static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
21849 {
21850 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21851 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21852 .name = "Sound Focus Voice Tx SLIMBUS_0",
21853 .info = msm_sound_focus_info,
21854 .get = msm_voice_sound_focus_get,
21855 .put = msm_voice_sound_focus_put,
21856 },
21857 {
21858 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21859 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21860 .name = "Source Tracking Voice Tx SLIMBUS_0",
21861 .info = msm_source_tracking_info,
21862 .get = msm_voice_source_tracking_get,
21863 },
21864 {
21865 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21866 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21867 .name = "Sound Focus Audio Tx SLIMBUS_0",
21868 .info = msm_sound_focus_info,
21869 .get = msm_audio_sound_focus_get,
21870 .put = msm_audio_sound_focus_put,
21871 },
21872 {
21873 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21874 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21875 .name = "Source Tracking Audio Tx SLIMBUS_0",
21876 .info = msm_source_tracking_info,
21877 .get = msm_audio_source_tracking_get,
21878 },
21879 {
21880 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21881 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21882 .name = "Sound Focus Voice Tx TERT_MI2S",
21883 .info = msm_sound_focus_info,
21884 .get = msm_voice_sound_focus_get,
21885 .put = msm_voice_sound_focus_put,
21886 },
21887 {
21888 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21889 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21890 .name = "Source Tracking Voice Tx TERT_MI2S",
21891 .info = msm_source_tracking_info,
21892 .get = msm_voice_source_tracking_get,
21893 },
21894 {
21895 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21896 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21897 .name = "Sound Focus Audio Tx TERT_MI2S",
21898 .info = msm_sound_focus_info,
21899 .get = msm_audio_sound_focus_get,
21900 .put = msm_audio_sound_focus_put,
21901 },
21902 {
21903 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21904 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21905 .name = "Source Tracking Audio Tx TERT_MI2S",
21906 .info = msm_source_tracking_info,
21907 .get = msm_audio_source_tracking_get,
21908 },
21909 {
21910 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21911 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21912 .name = "Sound Focus Voice Tx INT3_MI2S",
21913 .info = msm_sound_focus_info,
21914 .get = msm_voice_sound_focus_get,
21915 .put = msm_voice_sound_focus_put,
21916 },
21917 {
21918 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21919 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21920 .name = "Source Tracking Voice Tx INT3_MI2S",
21921 .info = msm_source_tracking_info,
21922 .get = msm_voice_source_tracking_get,
21923 },
21924 {
21925 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21926 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21927 .name = "Sound Focus Audio Tx INT3_MI2S",
21928 .info = msm_sound_focus_info,
21929 .get = msm_audio_sound_focus_get,
21930 .put = msm_audio_sound_focus_put,
21931 },
21932 {
21933 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21934 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21935 .name = "Source Tracking Audio Tx INT3_MI2S",
21936 .info = msm_source_tracking_info,
21937 .get = msm_audio_source_tracking_get,
21938 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053021939 {
21940 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21941 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21942 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
21943 .info = msm_sound_focus_info,
21944 .get = msm_voice_sound_focus_get,
21945 .put = msm_voice_sound_focus_put,
21946 },
21947 {
21948 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21949 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21950 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
21951 .info = msm_source_tracking_info,
21952 .get = msm_voice_source_tracking_get,
21953 },
21954 {
21955 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21956 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21957 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
21958 .info = msm_sound_focus_info,
21959 .get = msm_audio_sound_focus_get,
21960 .put = msm_audio_sound_focus_put,
21961 },
21962 {
21963 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21964 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21965 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
21966 .info = msm_source_tracking_info,
21967 .get = msm_audio_source_tracking_get,
21968 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053021969 {
21970 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21971 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21972 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
21973 .info = msm_sound_focus_info,
21974 .get = msm_voice_sound_focus_get,
21975 .put = msm_voice_sound_focus_put,
21976 },
21977 {
21978 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21979 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21980 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
21981 .info = msm_source_tracking_info,
21982 .get = msm_voice_source_tracking_get,
21983 },
21984 {
21985 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21986 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21987 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
21988 .info = msm_sound_focus_info,
21989 .get = msm_audio_sound_focus_get,
21990 .put = msm_audio_sound_focus_put,
21991 },
21992 {
21993 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21994 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21995 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
21996 .info = msm_source_tracking_info,
21997 .get = msm_audio_source_tracking_get,
21998 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021999 {
22000 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22001 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22002 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22003 .info = msm_sound_focus_info,
22004 .get = msm_voice_sound_focus_get,
22005 .put = msm_voice_sound_focus_put,
22006 },
22007 {
22008 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22009 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22010 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22011 .info = msm_source_tracking_info,
22012 .get = msm_voice_source_tracking_get,
22013 },
22014 {
22015 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22016 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22017 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
22018 .info = msm_sound_focus_info,
22019 .get = msm_audio_sound_focus_get,
22020 .put = msm_audio_sound_focus_put,
22021 },
22022 {
22023 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22024 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22025 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
22026 .info = msm_source_tracking_info,
22027 .get = msm_audio_source_tracking_get,
22028 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022029 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022030 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22031 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22032 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22033 .info = msm_sound_focus_info,
22034 .get = msm_audio_sound_focus_get,
22035 .put = msm_audio_sound_focus_put,
22036 },
22037 {
22038 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22039 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22040 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22041 .info = msm_source_tracking_info,
22042 .get = msm_audio_source_tracking_get,
22043 },
22044 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022045 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22046 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22047 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22048 .info = msm_doa_tracking_mon_info,
22049 .get = msm_doa_tracking_mon_get,
22050 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022051};
22052
22053static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22054 struct snd_ctl_elem_value *ucontrol)
22055{
22056 int ret = 0;
22057 int item;
22058 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22059
22060 pr_debug("%s item is %d\n", __func__,
22061 ucontrol->value.enumerated.item[0]);
22062 mutex_lock(&routing_lock);
22063 item = ucontrol->value.enumerated.item[0];
22064 if (item < e->items) {
22065 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22066 __func__, e->shift_l, e->values[item]);
22067 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22068 e->values[item] < MSM_BACKEND_DAI_MAX)
22069 /* Enable feedback TX path */
22070 ret = afe_spk_prot_feed_back_cfg(
22071 msm_bedais[e->values[item]].port_id,
22072 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22073 else {
22074 pr_debug("%s values are out of range item %d\n",
22075 __func__, e->values[item]);
22076 /* Disable feedback TX path */
22077 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22078 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22079 else
22080 ret = -EINVAL;
22081 }
22082 } else {
22083 pr_err("%s item value is out of range item\n", __func__);
22084 ret = -EINVAL;
22085 }
22086 mutex_unlock(&routing_lock);
22087 return ret;
22088}
22089
22090static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22091 struct snd_ctl_elem_value *ucontrol)
22092{
22093 int ret = 0;
22094 int item;
22095 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22096
22097 pr_debug("%s item is %d\n", __func__,
22098 ucontrol->value.enumerated.item[0]);
22099 mutex_lock(&routing_lock);
22100 item = ucontrol->value.enumerated.item[0];
22101 if (item < e->items) {
22102 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22103 __func__, e->shift_l, e->values[item]);
22104 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22105 e->values[item] < MSM_BACKEND_DAI_MAX)
22106 /* Enable feedback TX path */
22107 ret = afe_spk_prot_feed_back_cfg(
22108 msm_bedais[e->values[item]].port_id,
22109 msm_bedais[e->shift_l].port_id,
22110 1, 1, 1);
22111 else {
22112 pr_debug("%s values are out of range item %d\n",
22113 __func__, e->values[item]);
22114 /* Disable feedback TX path */
22115 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22116 ret = afe_spk_prot_feed_back_cfg(0,
22117 0, 0, 0, 0);
22118 else
22119 ret = -EINVAL;
22120 }
22121 } else {
22122 pr_err("%s item value is out of range item\n", __func__);
22123 ret = -EINVAL;
22124 }
22125 mutex_unlock(&routing_lock);
22126 return ret;
22127}
22128
22129static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
22130 struct snd_ctl_elem_value *ucontrol)
22131{
22132 pr_debug("%s\n", __func__);
22133 return 0;
22134}
22135
22136static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
22137 struct snd_ctl_elem_value *ucontrol)
22138{
22139 pr_debug("%s\n", __func__);
22140 ucontrol->value.enumerated.item[0] = 0;
22141 return 0;
22142}
22143
22144static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
22145 "ZERO", "SLIM4_TX"
22146};
22147
22148static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
22149 "ZERO", "SLIM4_TX"
22150};
22151
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022152static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
22153 "ZERO", "WSA_CDC_DMA_TX_0"
22154};
22155
22156static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
22157 "ZERO", "WSA_CDC_DMA_TX_0"
22158};
22159
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022160static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
22161 "ZERO", "SENARY_TX"
22162};
22163
22164static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
22165 "ZERO", "INT5_MI2S_TX"
22166};
22167
22168static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
22169 "ZERO", "INT5_MI2S_TX"
22170};
22171
Josh Kirschea69fed2018-12-11 16:15:08 -080022172static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022173 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22174};
22175
Josh Kirschea69fed2018-12-11 16:15:08 -080022176static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022177 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22178};
22179
Josh Kirschea69fed2018-12-11 16:15:08 -080022180static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022181 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22182};
22183
Josh Kirschea69fed2018-12-11 16:15:08 -080022184static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022185 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22186};
22187
22188
Josh Kirschea69fed2018-12-11 16:15:08 -080022189static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022190 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
22191};
22192
Josh Kirschea69fed2018-12-11 16:15:08 -080022193static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022194 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22195};
22196
Josh Kirschea69fed2018-12-11 16:15:08 -080022197static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022198 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22199};
22200
22201static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
22202 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22203 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
22204 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
22205
22206static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
22207 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22208 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
22209 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
22210
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022211static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
22212 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22213 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
22214 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
22215
22216static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
22217 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22218 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
22219 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
22220
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022221static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
22222 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
22223 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
22224 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
22225
22226static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
22227 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22228 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
22229 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
22230 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
22231
22232static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
22233 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22234 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
22235 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
22236 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
22237
22238static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
22239 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
22240 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22241 spkr_prot_put_vi_lch_port);
22242
22243static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
22244 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
22245 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22246 spkr_prot_put_vi_rch_port);
22247
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022248static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
22249 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
22250 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22251 spkr_prot_put_vi_lch_port);
22252
22253static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
22254 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
22255 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22256 spkr_prot_put_vi_rch_port);
22257
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022258static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
22259 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
22260 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
22261 spkr_prot_put_vi_lch_port);
22262
22263static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
22264 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
22265 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
22266 spkr_prot_put_vi_lch_port);
22267
22268static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
22269 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
22270 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
22271 spkr_prot_put_vi_rch_port);
22272
22273static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
22274 /* Frontend AIF */
22275 /* Widget name equals to Front-End DAI name<Need confirmation>,
22276 * Stream name must contains substring of front-end dai name
22277 */
22278 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
22279 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
22280 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
22281 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
22282 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
22283 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
22284 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
22285 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
22286 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
22287 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
22288 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
22289 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
22290 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
22291 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
22292 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
22293 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
22294 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022295 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022296 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022297 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
22298 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
22299 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
22300 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
22301 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
22302 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
22303 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
22304 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
22305 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022306 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022307 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022308 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
22309 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
22310 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
22311 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022312 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022313 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080022314 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
22315 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053022316 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022317 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
22318 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
22319 "VoiceMMode1 Playback", 0, 0, 0, 0),
22320 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
22321 "VoiceMMode1 Capture", 0, 0, 0, 0),
22322 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
22323 "VoiceMMode2 Playback", 0, 0, 0, 0),
22324 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
22325 "VoiceMMode2 Capture", 0, 0, 0, 0),
22326 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
22327 0, 0, 0, 0),
22328 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
22329 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022330 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
22331 0, 0, 0, 0),
22332 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
22333 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022334 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
22335 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022336 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
22337 0, 0, 0, 0),
22338 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
22339 0, 0, 0, 0),
22340 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
22341 0, 0, 0, 0),
22342 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
22343 0, 0, 0, 0),
22344 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
22345 0, 0, 0, 0),
22346 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
22347 0, 0, 0, 0),
22348 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
22349 0, 0, 0, 0),
22350 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
22351 0, 0, 0, 0),
22352 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
22353 0, 0, 0, 0),
22354 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
22355 0, 0, 0, 0),
22356 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
22357 0, 0, 0, 0),
22358 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
22359 0, 0, 0, 0),
22360 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
22361 0, 0, 0, 0),
22362 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
22363 0, 0, 0, 0),
22364 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
22365 0, 0, 0, 0),
22366 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
22367 0, 0, 0, 0),
22368 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
22369 0, 0, 0, 0),
22370 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
22371 0, 0, 0, 0),
22372 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
22373 0, 0, 0, 0),
22374 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
22375 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
22376 0, 0, 0, 0),
22377 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
22378 "INT0 MI2S_RX Hostless Playback",
22379 0, 0, 0, 0),
22380 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
22381 "INT4 MI2S_RX Hostless Playback",
22382 0, 0, 0, 0),
22383 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
22384 "Primary MI2S_RX Hostless Playback",
22385 0, 0, 0, 0),
22386 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
22387 "Secondary MI2S_RX Hostless Playback",
22388 0, 0, 0, 0),
22389 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
22390 "Tertiary MI2S_RX Hostless Playback",
22391 0, 0, 0, 0),
22392 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
22393 "Quaternary MI2S_RX Hostless Playback",
22394 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022395 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
22396 "Quinary MI2S_RX Hostless Playback",
22397 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022398 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
22399 "Senary MI2S_RX Hostless Playback",
22400 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022401
22402 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
22403 0, 0, 0, 0),
22404 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
22405 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022406 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
22407 0, 0, 0, 0),
22408 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
22409 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022410 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
22411 0, 0, 0, 0),
22412 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
22413 "INT3 MI2S_TX Hostless Capture",
22414 0, 0, 0, 0),
22415 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
22416 "Tertiary MI2S_TX Hostless Capture",
22417 0, 0, 0, 0),
22418 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
22419 "Secondary MI2S_TX Hostless Capture",
22420 0, 0, 0, 0),
22421 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
22422 "Primary MI2S_TX Hostless Capture",
22423 0, 0, 0, 0),
22424 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
22425 0, 0, 0, 0),
22426 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
22427 0, 0, 0, 0),
22428 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
22429 "Quaternary MI2S_TX Hostless Capture",
22430 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022431 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
22432 "Quinary MI2S_TX Hostless Capture",
22433 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022434 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
22435 "Senary MI2S_TX Hostless Capture",
22436 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022437
22438 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
22439 "Primary TDM0 Hostless Playback",
22440 0, 0, 0, 0),
22441 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
22442 "Primary TDM0 Hostless Capture",
22443 0, 0, 0, 0),
22444 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
22445 "Primary TDM1 Hostless Playback",
22446 0, 0, 0, 0),
22447 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
22448 "Primary TDM1 Hostless Capture",
22449 0, 0, 0, 0),
22450 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
22451 "Primary TDM2 Hostless Playback",
22452 0, 0, 0, 0),
22453 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
22454 "Primary TDM2 Hostless Capture",
22455 0, 0, 0, 0),
22456 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
22457 "Primary TDM3 Hostless Playback",
22458 0, 0, 0, 0),
22459 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
22460 "Primary TDM3 Hostless Capture",
22461 0, 0, 0, 0),
22462 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
22463 "Primary TDM4 Hostless Playback",
22464 0, 0, 0, 0),
22465 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
22466 "Primary TDM4 Hostless Capture",
22467 0, 0, 0, 0),
22468 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
22469 "Primary TDM5 Hostless Playback",
22470 0, 0, 0, 0),
22471 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
22472 "Primary TDM5 Hostless Capture",
22473 0, 0, 0, 0),
22474 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
22475 "Primary TDM6 Hostless Playback",
22476 0, 0, 0, 0),
22477 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
22478 "Primary TDM6 Hostless Capture",
22479 0, 0, 0, 0),
22480 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
22481 "Primary TDM7 Hostless Playback",
22482 0, 0, 0, 0),
22483 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
22484 "Primary TDM7 Hostless Capture",
22485 0, 0, 0, 0),
22486 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
22487 "Secondary TDM0 Hostless Playback",
22488 0, 0, 0, 0),
22489 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
22490 "Secondary TDM0 Hostless Capture",
22491 0, 0, 0, 0),
22492 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
22493 "Secondary TDM1 Hostless Playback",
22494 0, 0, 0, 0),
22495 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
22496 "Secondary TDM1 Hostless Capture",
22497 0, 0, 0, 0),
22498 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
22499 "Secondary TDM2 Hostless Playback",
22500 0, 0, 0, 0),
22501 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
22502 "Secondary TDM2 Hostless Capture",
22503 0, 0, 0, 0),
22504 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
22505 "Secondary TDM3 Hostless Playback",
22506 0, 0, 0, 0),
22507 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
22508 "Secondary TDM3 Hostless Capture",
22509 0, 0, 0, 0),
22510 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
22511 "Secondary TDM4 Hostless Playback",
22512 0, 0, 0, 0),
22513 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
22514 "Secondary TDM4 Hostless Capture",
22515 0, 0, 0, 0),
22516 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
22517 "Secondary TDM5 Hostless Playback",
22518 0, 0, 0, 0),
22519 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
22520 "Secondary TDM5 Hostless Capture",
22521 0, 0, 0, 0),
22522 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
22523 "Secondary TDM6 Hostless Playback",
22524 0, 0, 0, 0),
22525 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
22526 "Secondary TDM6 Hostless Capture",
22527 0, 0, 0, 0),
22528 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
22529 "Secondary TDM7 Hostless Playback",
22530 0, 0, 0, 0),
22531 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
22532 "Secondary TDM7 Hostless Capture",
22533 0, 0, 0, 0),
22534 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
22535 "Tertiary TDM0 Hostless Playback",
22536 0, 0, 0, 0),
22537 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
22538 "Tertiary TDM0 Hostless Capture",
22539 0, 0, 0, 0),
22540 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
22541 "Tertiary TDM1 Hostless Playback",
22542 0, 0, 0, 0),
22543 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
22544 "Tertiary TDM1 Hostless Capture",
22545 0, 0, 0, 0),
22546 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
22547 "Tertiary TDM2 Hostless Playback",
22548 0, 0, 0, 0),
22549 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
22550 "Tertiary TDM2 Hostless Capture",
22551 0, 0, 0, 0),
22552 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
22553 "Tertiary TDM3 Hostless Playback",
22554 0, 0, 0, 0),
22555 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
22556 "Tertiary TDM3 Hostless Capture",
22557 0, 0, 0, 0),
22558 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
22559 "Tertiary TDM4 Hostless Playback",
22560 0, 0, 0, 0),
22561 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
22562 "Tertiary TDM4 Hostless Capture",
22563 0, 0, 0, 0),
22564 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
22565 "Tertiary TDM5 Hostless Playback",
22566 0, 0, 0, 0),
22567 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
22568 "Tertiary TDM5 Hostless Capture",
22569 0, 0, 0, 0),
22570 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
22571 "Tertiary TDM6 Hostless Playback",
22572 0, 0, 0, 0),
22573 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
22574 "Tertiary TDM6 Hostless Capture",
22575 0, 0, 0, 0),
22576 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
22577 "Tertiary TDM7 Hostless Playback",
22578 0, 0, 0, 0),
22579 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
22580 "Tertiary TDM7 Hostless Capture",
22581 0, 0, 0, 0),
22582 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
22583 "Quaternary TDM0 Hostless Playback",
22584 0, 0, 0, 0),
22585 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
22586 "Quaternary TDM0 Hostless Capture",
22587 0, 0, 0, 0),
22588 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
22589 "Quaternary TDM1 Hostless Playback",
22590 0, 0, 0, 0),
22591 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
22592 "Quaternary TDM1 Hostless Capture",
22593 0, 0, 0, 0),
22594 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
22595 "Quaternary TDM2 Hostless Playback",
22596 0, 0, 0, 0),
22597 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
22598 "Quaternary TDM2 Hostless Capture",
22599 0, 0, 0, 0),
22600 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
22601 "Quaternary TDM3 Hostless Playback",
22602 0, 0, 0, 0),
22603 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
22604 "Quaternary TDM3 Hostless Capture",
22605 0, 0, 0, 0),
22606 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
22607 "Quaternary TDM4 Hostless Playback",
22608 0, 0, 0, 0),
22609 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
22610 "Quaternary TDM4 Hostless Capture",
22611 0, 0, 0, 0),
22612 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
22613 "Quaternary TDM5 Hostless Playback",
22614 0, 0, 0, 0),
22615 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
22616 "Quaternary TDM5 Hostless Capture",
22617 0, 0, 0, 0),
22618 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
22619 "Quaternary TDM6 Hostless Playback",
22620 0, 0, 0, 0),
22621 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
22622 "Quaternary TDM6 Hostless Capture",
22623 0, 0, 0, 0),
22624 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
22625 "Quaternary TDM7 Hostless Playback",
22626 0, 0, 0, 0),
22627 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
22628 "Quaternary TDM7 Hostless Capture",
22629 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022630 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
22631 "Quinary TDM0 Hostless Playback",
22632 0, 0, 0, 0),
22633 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
22634 "Quinary TDM0 Hostless Capture",
22635 0, 0, 0, 0),
22636 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
22637 "Quinary TDM1 Hostless Playback",
22638 0, 0, 0, 0),
22639 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
22640 "Quinary TDM1 Hostless Capture",
22641 0, 0, 0, 0),
22642 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
22643 "Quinary TDM2 Hostless Playback",
22644 0, 0, 0, 0),
22645 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
22646 "Quinary TDM2 Hostless Capture",
22647 0, 0, 0, 0),
22648 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
22649 "Quinary TDM3 Hostless Playback",
22650 0, 0, 0, 0),
22651 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
22652 "Quinary TDM3 Hostless Capture",
22653 0, 0, 0, 0),
22654 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
22655 "Quinary TDM4 Hostless Playback",
22656 0, 0, 0, 0),
22657 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
22658 "Quinary TDM4 Hostless Capture",
22659 0, 0, 0, 0),
22660 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
22661 "Quinary TDM5 Hostless Playback",
22662 0, 0, 0, 0),
22663 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
22664 "Quinary TDM5 Hostless Capture",
22665 0, 0, 0, 0),
22666 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
22667 "Quinary TDM6 Hostless Playback",
22668 0, 0, 0, 0),
22669 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
22670 "Quinary TDM6 Hostless Capture",
22671 0, 0, 0, 0),
22672 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
22673 "Quinary TDM7 Hostless Playback",
22674 0, 0, 0, 0),
22675 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
22676 "Quinary TDM7 Hostless Capture",
22677 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022678 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
22679 "Senary TDM0 Hostless Playback",
22680 0, 0, 0, 0),
22681 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
22682 "Senary TDM0 Hostless Capture",
22683 0, 0, 0, 0),
22684 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
22685 "Senary TDM1 Hostless Playback",
22686 0, 0, 0, 0),
22687 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
22688 "Senary TDM1 Hostless Capture",
22689 0, 0, 0, 0),
22690 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
22691 "Senary TDM2 Hostless Playback",
22692 0, 0, 0, 0),
22693 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
22694 "Senary TDM2 Hostless Capture",
22695 0, 0, 0, 0),
22696 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
22697 "Senary TDM3 Hostless Playback",
22698 0, 0, 0, 0),
22699 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
22700 "Senary TDM3 Hostless Capture",
22701 0, 0, 0, 0),
22702 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
22703 "Senary TDM4 Hostless Playback",
22704 0, 0, 0, 0),
22705 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
22706 "Senary TDM4 Hostless Capture",
22707 0, 0, 0, 0),
22708 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
22709 "Senary TDM5 Hostless Playback",
22710 0, 0, 0, 0),
22711 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
22712 "Senary TDM5 Hostless Capture",
22713 0, 0, 0, 0),
22714 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
22715 "Senary TDM6 Hostless Playback",
22716 0, 0, 0, 0),
22717 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
22718 "Senary TDM6 Hostless Capture",
22719 0, 0, 0, 0),
22720 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
22721 "Senary TDM7 Hostless Playback",
22722 0, 0, 0, 0),
22723 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
22724 "Senary TDM7 Hostless Capture",
22725 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022726
22727 /* LSM */
22728 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
22729 0, 0, 0, 0),
22730 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
22731 0, 0, 0, 0),
22732 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
22733 0, 0, 0, 0),
22734 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
22735 0, 0, 0, 0),
22736 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
22737 0, 0, 0, 0),
22738 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
22739 0, 0, 0, 0),
22740 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
22741 0, 0, 0, 0),
22742 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
22743 0, 0, 0, 0),
22744 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
22745 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
22746 /* Backend AIF */
22747 /* Stream name equals to backend dai link stream name */
22748 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
22749 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
22750 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020022751 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
22752 0, 0, 0, 0),
22753 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
22754 0, 0, 0, 0),
22755 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
22756 0, 0, 0, 0),
22757 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
22758 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022759 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
22760 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
22761 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
22762 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
22763 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
22764 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070022765 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
22766 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022767 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
22768 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
22769 0, 0, 0, 0),
22770 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
22771 0, 0, 0, 0),
22772 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
22773 0, 0, 0, 0),
22774 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
22775 "Secondary MI2S Playback SD1",
22776 0, 0, 0, 0),
22777 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
22778 0, 0, 0, 0),
22779 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
22780 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022781 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
22782 0, 0, 0, 0),
22783 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
22784 0, 0, 0, 0),
22785 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
22786 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022787 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
22788 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022789 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
22790 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022791 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
22792 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022793 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
22794 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022795 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
22796 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
22797 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
22798 0, 0, 0, 0),
22799 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
22800 0, 0, 0, 0),
22801 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
22802 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022803 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
22804 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022805 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
22806 0, 0, 0, 0),
22807 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
22808 0, 0, 0, 0),
22809 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
22810 0, 0, 0, 0),
22811 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
22812 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
22813 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
22814 0, 0, 0, 0),
22815 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
22816 0, 0, 0, 0),
22817 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
22818 0, 0, 0, 0),
22819 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
22820 0, 0, 0, 0),
22821 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
22822 0, 0, 0, 0),
22823 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
22824 0, 0, 0, 0),
22825 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
22826 0, 0, 0, 0),
22827 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
22828 0, 0, 0, 0),
22829 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
22830 0, 0, 0, 0),
22831 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
22832 0, 0, 0, 0),
22833 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
22834 0, 0, 0, 0),
22835 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
22836 0, 0, 0, 0),
22837 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
22838 0, 0, 0, 0),
22839 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
22840 0, 0, 0, 0),
22841 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
22842 0, 0, 0, 0),
22843 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
22844 0, 0, 0, 0),
22845 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
22846 0, 0, 0, 0),
22847 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
22848 0, 0, 0, 0),
22849 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
22850 0, 0, 0, 0),
22851 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
22852 0, 0, 0, 0),
22853 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
22854 0, 0, 0, 0),
22855 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
22856 0, 0, 0, 0),
22857 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
22858 0, 0, 0, 0),
22859 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
22860 0, 0, 0, 0),
22861 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
22862 0, 0, 0, 0),
22863 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
22864 0, 0, 0, 0),
22865 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
22866 0, 0, 0, 0),
22867 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
22868 0, 0, 0, 0),
22869 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
22870 0, 0, 0, 0),
22871 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
22872 0, 0, 0, 0),
22873 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
22874 0, 0, 0, 0),
22875 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
22876 0, 0, 0, 0),
22877 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
22878 0, 0, 0, 0),
22879 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
22880 0, 0, 0, 0),
22881 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
22882 0, 0, 0, 0),
22883 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
22884 0, 0, 0, 0),
22885 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
22886 0, 0, 0, 0),
22887 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
22888 0, 0, 0, 0),
22889 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
22890 0, 0, 0, 0),
22891 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
22892 0, 0, 0, 0),
22893 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
22894 0, 0, 0, 0),
22895 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
22896 0, 0, 0, 0),
22897 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
22898 0, 0, 0, 0),
22899 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
22900 0, 0, 0, 0),
22901 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
22902 0, 0, 0, 0),
22903 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
22904 0, 0, 0, 0),
22905 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
22906 0, 0, 0, 0),
22907 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
22908 0, 0, 0, 0),
22909 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
22910 0, 0, 0, 0),
22911 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
22912 0, 0, 0, 0),
22913 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
22914 0, 0, 0, 0),
22915 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
22916 0, 0, 0, 0),
22917 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
22918 0, 0, 0, 0),
22919 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
22920 0, 0, 0, 0),
22921 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
22922 0, 0, 0, 0),
22923 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
22924 0, 0, 0, 0),
22925 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
22926 0, 0, 0, 0),
22927 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
22928 0, 0, 0, 0),
22929 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
22930 0, 0, 0, 0),
22931 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
22932 0, 0, 0, 0),
22933 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
22934 0, 0, 0, 0),
22935 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
22936 0, 0, 0, 0),
22937 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
22938 0, 0, 0, 0),
22939 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
22940 0, 0, 0, 0),
22941 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
22942 0, 0, 0, 0),
22943 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
22944 0, 0, 0, 0),
22945 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
22946 0, 0, 0, 0),
22947 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
22948 0, 0, 0, 0),
22949 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
22950 0, 0, 0, 0),
22951 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
22952 0, 0, 0, 0),
22953 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
22954 0, 0, 0, 0),
22955 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
22956 0, 0, 0, 0),
22957 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
22958 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022959 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
22960 0, 0, 0, 0),
22961 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
22962 0, 0, 0, 0),
22963 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
22964 0, 0, 0, 0),
22965 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
22966 0, 0, 0, 0),
22967 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
22968 0, 0, 0, 0),
22969 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
22970 0, 0, 0, 0),
22971 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
22972 0, 0, 0, 0),
22973 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
22974 0, 0, 0, 0),
22975 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
22976 0, 0, 0, 0),
22977 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
22978 0, 0, 0, 0),
22979 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
22980 0, 0, 0, 0),
22981 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
22982 0, 0, 0, 0),
22983 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
22984 0, 0, 0, 0),
22985 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
22986 0, 0, 0, 0),
22987 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
22988 0, 0, 0, 0),
22989 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
22990 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022991 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
22992 0, 0, 0, 0),
22993 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
22994 0, 0, 0, 0),
22995 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
22996 0, 0, 0, 0),
22997 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
22998 0, 0, 0, 0),
22999 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23000 0, 0, 0, 0),
23001 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23002 0, 0, 0, 0),
23003 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23004 0, 0, 0, 0),
23005 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23006 0, 0, 0, 0),
23007 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23008 0, 0, 0, 0),
23009 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23010 0, 0, 0, 0),
23011 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23012 0, 0, 0, 0),
23013 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23014 0, 0, 0, 0),
23015 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23016 0, 0, 0, 0),
23017 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23018 0, 0, 0, 0),
23019 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23020 0, 0, 0, 0),
23021 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23022 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023023 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23024 0, 0, 0, 0),
23025 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23026 0, 0, 0, 0),
23027 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23028 0, 0, 0, 0),
23029 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23030 0, 0, 0, 0),
23031 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23032 0, 0, 0, 0),
23033 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23034 0, 0, 0, 0),
23035 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23036 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023037 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23038 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023039 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23040 0, 0, 0, 0),
23041 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23042 0, 0, 0, 0),
23043 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23044 0, 0, 0, 0),
23045 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23046 0, 0, 0, 0),
23047 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23048 0, 0, 0, 0),
23049 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23050 0, 0, 0, 0),
23051 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23052 0, 0, 0, 0),
23053 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23054 0, 0, 0, 0),
23055 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23056 0, 0, 0, 0),
23057 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23058 0, 0, 0, 0),
23059 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23060 0, 0, 0, 0),
23061 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23062 0, 0, 0, 0),
23063 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23064 0, 0, 0, 0),
23065 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23066 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023067 /* incall */
23068 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23069 0, 0, 0, 0),
23070 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23071 0, 0, 0, 0),
23072 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23073 0, 0, 0, 0),
23074 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23075 0, 0, 0, 0),
23076 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23077 0, 0, 0, 0),
23078 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23079 0, 0, 0, 0),
23080 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23081 0, 0, 0, 0),
23082 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23083 0, 0, 0, 0),
23084 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23085
23086 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23087 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23088 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23089 0, 0, 0, 0),
23090 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23091 0, 0, 0, 0),
23092 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23093 0, 0, 0, 0),
23094 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23095 0, 0, 0, 0),
23096 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23097 0, 0, 0, 0),
23098 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23099 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023100 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23101 0, 0, 0, 0),
23102 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23103 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023104 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23105 0, 0, 0, 0),
23106 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23107 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023108 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23109 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23110 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23111 0, 0, 0, 0),
23112 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23113 0, 0, 0, 0),
23114 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23115 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23116 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23117 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23118 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23119 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23120 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
23121 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
23122 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
23123 /* In- call recording */
23124 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
23125 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053023126 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
23127 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023128 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
23129 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
23130
23131 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
23132 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023133 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
23134 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023135 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
23136 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
23137
23138 /* Switch Definitions */
23139 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
23140 &slim_fm_switch_mixer_controls),
23141 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
23142 &slim1_fm_switch_mixer_controls),
23143 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
23144 &slim3_fm_switch_mixer_controls),
23145 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
23146 &slim4_fm_switch_mixer_controls),
23147 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
23148 &slim6_fm_switch_mixer_controls),
23149 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23150 &pcm_rx_switch_mixer_controls),
23151 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23152 &int0_mi2s_rx_switch_mixer_controls),
23153 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23154 &int4_mi2s_rx_switch_mixer_controls),
23155 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23156 &pri_mi2s_rx_switch_mixer_controls),
23157 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23158 &sec_mi2s_rx_switch_mixer_controls),
23159 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23160 &tert_mi2s_rx_switch_mixer_controls),
23161 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23162 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053023163 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23164 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080023165 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
23166 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023167 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23168 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023169 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23170 &hfp_pri_aux_switch_mixer_controls),
23171 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23172 &hfp_aux_switch_mixer_controls),
23173 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
23174 &hfp_int_switch_mixer_controls),
23175 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23176 &hfp_slim7_switch_mixer_controls),
23177 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
23178 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080023179 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23180 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023181 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023182 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023183 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023184 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023185
23186 /* Mixer definitions */
23187 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23188 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
23189 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23190 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
23191 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23192 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
23193 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23194 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
23195 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23196 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
23197 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23198 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023199 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23200 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023201 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
23202 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
23203 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
23204 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023205 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
23206 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020023207 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23208 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
23209 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23210 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023211 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23212 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
23213 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23214 quaternary_mi2s_rx_mixer_controls,
23215 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
23216 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23217 tertiary_mi2s_rx_mixer_controls,
23218 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
23219 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23220 secondary_mi2s_rx_mixer_controls,
23221 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
23222 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23223 secondary_mi2s_rx2_mixer_controls,
23224 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
23225 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23226 primary_mi2s_rx_mixer_controls,
23227 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
23228 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23229 int0_mi2s_rx_mixer_controls,
23230 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
23231 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23232 int4_mi2s_rx_mixer_controls,
23233 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
23234 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23235 quinary_mi2s_rx_mixer_controls,
23236 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023237 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23238 senary_mi2s_rx_mixer_controls,
23239 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023240 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23241 pri_tdm_rx_0_mixer_controls,
23242 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
23243 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23244 pri_tdm_rx_1_mixer_controls,
23245 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
23246 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23247 pri_tdm_rx_2_mixer_controls,
23248 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
23249 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23250 pri_tdm_rx_3_mixer_controls,
23251 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
23252 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23253 pri_tdm_tx_0_mixer_controls,
23254 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
23255 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23256 sec_tdm_rx_0_mixer_controls,
23257 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
23258 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23259 sec_tdm_rx_1_mixer_controls,
23260 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
23261 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23262 sec_tdm_rx_2_mixer_controls,
23263 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
23264 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23265 sec_tdm_rx_3_mixer_controls,
23266 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
23267 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23268 sec_tdm_tx_0_mixer_controls,
23269 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
23270 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23271 tert_tdm_rx_0_mixer_controls,
23272 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
23273 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23274 tert_tdm_tx_0_mixer_controls,
23275 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
23276 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23277 tert_tdm_rx_1_mixer_controls,
23278 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
23279 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23280 tert_tdm_rx_2_mixer_controls,
23281 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
23282 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23283 tert_tdm_rx_3_mixer_controls,
23284 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
23285 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23286 tert_tdm_rx_4_mixer_controls,
23287 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
23288 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23289 quat_tdm_rx_0_mixer_controls,
23290 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
23291 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23292 quat_tdm_tx_0_mixer_controls,
23293 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
23294 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23295 quat_tdm_rx_1_mixer_controls,
23296 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
23297 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23298 quat_tdm_rx_2_mixer_controls,
23299 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
23300 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23301 quat_tdm_rx_3_mixer_controls,
23302 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023303 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23304 quin_tdm_rx_0_mixer_controls,
23305 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
23306 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23307 quin_tdm_tx_0_mixer_controls,
23308 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
23309 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23310 quin_tdm_rx_1_mixer_controls,
23311 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
23312 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23313 quin_tdm_rx_2_mixer_controls,
23314 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
23315 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23316 quin_tdm_rx_3_mixer_controls,
23317 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023318 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23319 sen_tdm_tx_0_mixer_controls,
23320 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
23321 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23322 sen_tdm_rx_0_mixer_controls,
23323 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
23324 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23325 sen_tdm_rx_1_mixer_controls,
23326 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
23327 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23328 sen_tdm_rx_2_mixer_controls,
23329 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
23330 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23331 sen_tdm_rx_3_mixer_controls,
23332 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023333 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23334 wsa_cdc_dma_rx_0_mixer_controls,
23335 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
23336 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23337 wsa_cdc_dma_rx_1_mixer_controls,
23338 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023339 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23340 rx_cdc_dma_rx_0_mixer_controls,
23341 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
23342 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23343 rx_cdc_dma_rx_1_mixer_controls,
23344 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
23345 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23346 rx_cdc_dma_rx_2_mixer_controls,
23347 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
23348 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23349 rx_cdc_dma_rx_3_mixer_controls,
23350 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
23351 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23352 rx_cdc_dma_rx_4_mixer_controls,
23353 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
23354 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
23355 rx_cdc_dma_rx_5_mixer_controls,
23356 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
23357 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
23358 rx_cdc_dma_rx_6_mixer_controls,
23359 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
23360 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
23361 rx_cdc_dma_rx_7_mixer_controls,
23362 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023363 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
23364 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
23365 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
23366 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
23367 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
23368 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
23369 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
23370 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
23371 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
23372 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
23373 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
23374 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
23375 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
23376 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
23377 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
23378 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023379 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
23380 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023381 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
23382 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023383 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
23384 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
23385 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
23386 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
23387 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
23388 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
23389 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
23390 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023391 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
23392 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053023393 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
23394 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023395 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
23396 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
23397 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
23398 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053023399 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
23400 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023401 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23402 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
23403 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23404 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
23405 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23406 tert_auxpcm_rx_mixer_controls,
23407 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
23408 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23409 quat_auxpcm_rx_mixer_controls,
23410 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023411 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23412 quin_auxpcm_rx_mixer_controls,
23413 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023414 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23415 sen_auxpcm_rx_mixer_controls,
23416 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023417 /* incall */
23418 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
23419 incall_music_delivery_mixer_controls,
23420 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
23421 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23422 incall_music2_delivery_mixer_controls,
23423 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
23424 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23425 slimbus_4_rx_mixer_controls,
23426 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
23427 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23428 slimbus_6_rx_mixer_controls,
23429 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
23430 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23431 usb_audio_rx_mixer_controls,
23432 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
23433 /* Voice Mixer */
23434 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
23435 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
23436 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
23437 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
23438 SND_SOC_NOPM, 0, 0,
23439 sec_i2s_rx_voice_mixer_controls,
23440 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
23441 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
23442 SND_SOC_NOPM, 0, 0,
23443 sec_mi2s_rx_voice_mixer_controls,
23444 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
23445 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
23446 SND_SOC_NOPM, 0, 0,
23447 slimbus_rx_voice_mixer_controls,
23448 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
23449 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
23450 SND_SOC_NOPM, 0, 0,
23451 bt_sco_rx_voice_mixer_controls,
23452 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
23453 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
23454 SND_SOC_NOPM, 0, 0,
23455 afe_pcm_rx_voice_mixer_controls,
23456 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
23457 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
23458 SND_SOC_NOPM, 0, 0,
23459 aux_pcm_rx_voice_mixer_controls,
23460 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
23461 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
23462 SND_SOC_NOPM, 0, 0,
23463 sec_aux_pcm_rx_voice_mixer_controls,
23464 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
23465 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
23466 SND_SOC_NOPM, 0, 0,
23467 tert_aux_pcm_rx_voice_mixer_controls,
23468 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
23469 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
23470 SND_SOC_NOPM, 0, 0,
23471 quat_aux_pcm_rx_voice_mixer_controls,
23472 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023473 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
23474 SND_SOC_NOPM, 0, 0,
23475 quin_aux_pcm_rx_voice_mixer_controls,
23476 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023477 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
23478 SND_SOC_NOPM, 0, 0,
23479 sen_aux_pcm_rx_voice_mixer_controls,
23480 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023481 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
23482 SND_SOC_NOPM, 0, 0,
23483 hdmi_rx_voice_mixer_controls,
23484 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
23485 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
23486 SND_SOC_NOPM, 0, 0,
23487 mi2s_rx_voice_mixer_controls,
23488 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
23489 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
23490 SND_SOC_NOPM, 0, 0,
23491 pri_mi2s_rx_voice_mixer_controls,
23492 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
23493 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
23494 SND_SOC_NOPM, 0, 0,
23495 int0_mi2s_rx_voice_mixer_controls,
23496 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
23497 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
23498 SND_SOC_NOPM, 0, 0,
23499 int4_mi2s_rx_voice_mixer_controls,
23500 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
23501 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
23502 SND_SOC_NOPM, 0, 0,
23503 tert_mi2s_rx_voice_mixer_controls,
23504 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
23505 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
23506 SND_SOC_NOPM, 0, 0,
23507 quat_mi2s_rx_voice_mixer_controls,
23508 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
23509 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
23510 SND_SOC_NOPM, 0, 0,
23511 quin_mi2s_rx_voice_mixer_controls,
23512 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053023513 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
23514 SND_SOC_NOPM, 0, 0,
23515 pri_tdm_rx_0_voice_mixer_controls,
23516 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
23517 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
23518 SND_SOC_NOPM, 0, 0,
23519 pri_tdm_rx_1_voice_mixer_controls,
23520 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
23521 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
23522 SND_SOC_NOPM, 0, 0,
23523 pri_tdm_rx_2_voice_mixer_controls,
23524 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
23525 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
23526 SND_SOC_NOPM, 0, 0,
23527 pri_tdm_rx_3_voice_mixer_controls,
23528 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023529 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
23530 SND_SOC_NOPM, 0, 0,
23531 sen_mi2s_rx_voice_mixer_controls,
23532 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023533 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
23534 SND_SOC_NOPM, 0, 0,
23535 quat_tdm_rx_2_voice_mixer_controls,
23536 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023537 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
23538 SND_SOC_NOPM, 0, 0,
23539 wsa_cdc_dma_rx_0_voice_mixer_controls,
23540 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
23541 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
23542 SND_SOC_NOPM, 0, 0,
23543 rx_cdc_dma_rx_0_voice_mixer_controls,
23544 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023545 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
23546 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
23547 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023548 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
23549 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
23550 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
23551 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
23552 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
23553 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
23554 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23555 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
23556 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23557 int_bt_a2dp_rx_mixer_controls,
23558 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
23559 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23560 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
23561 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23562 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
23563 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23564 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
23565 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23566 tx_voice2_stub_mixer_controls,
23567 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
23568 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23569 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
23570 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
23571 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
23572 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
23573 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
23574 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23575 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
23576 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
23577 SND_SOC_NOPM, 0, 0,
23578 slimbus_6_rx_voice_mixer_controls,
23579 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
23580 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23581 slimbus_7_rx_voice_mixer_controls,
23582 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
23583 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23584 slimbus_8_rx_voice_mixer_controls,
23585 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
23586 /* port mixer */
23587 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
23588 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
23589 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
23590 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
23591 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
23592 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
23593 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
23594 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
23595 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
23596 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
23597 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
23598 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
23599 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
23600 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
23601 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023602 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
23603 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
23604 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023605 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
23606 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
23607 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023608 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23609 sbus_1_rx_port_mixer_controls,
23610 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
23611 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23612 bt_sco_rx_port_mixer_controls,
23613 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
23614 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
23615 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
23616 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
23617 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
23618 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
23619 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
23620 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
23621 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
23622 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070023623 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070023624 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
23625 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023626 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
23627 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
23628 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
23629 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
23630 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
23631 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
23632 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
23633 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
23634 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
23635 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23636 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
23637 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23638 primary_mi2s_rx_port_mixer_controls,
23639 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
23640 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23641 sec_mi2s_rx_port_mixer_controls,
23642 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
23643 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23644 tert_mi2s_rx_port_mixer_controls,
23645 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
23646 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23647 quat_mi2s_rx_port_mixer_controls,
23648 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023649 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23650 quin_mi2s_rx_port_mixer_controls,
23651 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023652 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23653 sen_mi2s_rx_port_mixer_controls,
23654 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023655 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23656 pri_tdm_rx_0_port_mixer_controls,
23657 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
23658 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23659 pri_tdm_rx_1_port_mixer_controls,
23660 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
23661 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23662 pri_tdm_rx_2_port_mixer_controls,
23663 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
23664 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23665 pri_tdm_rx_3_port_mixer_controls,
23666 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
23667 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23668 sec_tdm_rx_0_port_mixer_controls,
23669 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
23670 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23671 sec_tdm_rx_1_port_mixer_controls,
23672 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
23673 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23674 sec_tdm_rx_2_port_mixer_controls,
23675 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
23676 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23677 sec_tdm_rx_3_port_mixer_controls,
23678 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070023679 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
23680 sec_tdm_rx_7_port_mixer_controls,
23681 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023682 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23683 tert_tdm_rx_0_port_mixer_controls,
23684 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
23685 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23686 tert_tdm_rx_1_port_mixer_controls,
23687 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
23688 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23689 tert_tdm_rx_2_port_mixer_controls,
23690 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
23691 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23692 tert_tdm_rx_3_port_mixer_controls,
23693 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
23694 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23695 quat_tdm_rx_0_port_mixer_controls,
23696 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
23697 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23698 quat_tdm_rx_1_port_mixer_controls,
23699 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
23700 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23701 quat_tdm_rx_2_port_mixer_controls,
23702 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
23703 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23704 quat_tdm_rx_3_port_mixer_controls,
23705 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050023706 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
23707 quat_tdm_rx_7_port_mixer_controls,
23708 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023709 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23710 quin_tdm_rx_0_port_mixer_controls,
23711 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
23712 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23713 quin_tdm_rx_1_port_mixer_controls,
23714 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
23715 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23716 quin_tdm_rx_2_port_mixer_controls,
23717 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
23718 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23719 quin_tdm_rx_3_port_mixer_controls,
23720 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080023721 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
23722 quin_tdm_rx_7_port_mixer_controls,
23723 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023724 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23725 sen_tdm_rx_0_port_mixer_controls,
23726 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
23727 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23728 sen_tdm_rx_1_port_mixer_controls,
23729 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
23730 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23731 sen_tdm_rx_2_port_mixer_controls,
23732 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
23733 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23734 sen_tdm_rx_3_port_mixer_controls,
23735 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023736 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23737 int0_mi2s_rx_port_mixer_controls,
23738 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
23739 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23740 int4_mi2s_rx_port_mixer_controls,
23741 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023742 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23743 wsa_cdc_dma_rx_0_port_mixer_controls,
23744 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
23745 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23746 rx_cdc_dma_rx_0_port_mixer_controls,
23747 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023748 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
23749 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
23750 ARRAY_SIZE(tx_qchat_mixer_controls)),
23751 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
23752 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
23753 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
23754 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
23755 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
23756 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080023757 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
23758 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
23759 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023760 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
23761 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
23762 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023763 /* lsm mixer definitions */
23764 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
23765 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
23766 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
23767 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
23768 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
23769 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
23770 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
23771 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
23772 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
23773 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
23774 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
23775 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
23776 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
23777 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
23778 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
23779 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
23780 /* Virtual Pins to force backends ON atm */
23781 SND_SOC_DAPM_OUTPUT("BE_OUT"),
23782 SND_SOC_DAPM_INPUT("BE_IN"),
23783
23784 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
23785 &slim0_rx_vi_fb_lch_mux),
23786 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
23787 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023788 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
23789 &wsa_rx_0_vi_fb_lch_mux),
23790 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
23791 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023792 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
23793 &mi2s_rx_vi_fb_mux),
23794 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
23795 &int4_mi2s_rx_vi_fb_mono_ch_mux),
23796 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
23797 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
23798
23799 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
23800 &voc_ext_ec_mux),
23801 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
23802 &ext_ec_ref_mux_ul1),
23803 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
23804 &ext_ec_ref_mux_ul2),
23805 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
23806 &ext_ec_ref_mux_ul3),
23807 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
23808 &ext_ec_ref_mux_ul4),
23809 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
23810 &ext_ec_ref_mux_ul5),
23811 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
23812 &ext_ec_ref_mux_ul6),
23813 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
23814 &ext_ec_ref_mux_ul8),
23815 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
23816 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023817 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
23818 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023819 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
23820 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023821 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
23822 &ext_ec_ref_mux_ul17),
23823 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
23824 &ext_ec_ref_mux_ul18),
23825 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
23826 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080023827 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
23828 &ext_ec_ref_mux_ul28),
23829 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
23830 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023831};
23832
23833static const struct snd_soc_dapm_route intercon[] = {
23834 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23835 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23836 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23837 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23838 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23839 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23840 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23841 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23842 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23843 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23844 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23845 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23846 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23847 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23848 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23849 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023850 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023851 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
23852
23853 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23854 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23855 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23856 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23857 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23858 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23859 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23860 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23861 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23862 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23863 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23864 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23865 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23866 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23867 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23868 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023869 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023870 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
23871
23872 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23873 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23874 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23875 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23876 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23877 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23878 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23879 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23880 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23881 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23882 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23883 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23884 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23885 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23886 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23887 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023888 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023889 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
23890
23891 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23892 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23893 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23894 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23895 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23896 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23897 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23898 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23899 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23900 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23901 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23902 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23903 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23904 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23905 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23906 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023907 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023908 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
23909
23910 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23911 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23912 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23913 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23914 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23915 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23916 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23917 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23918 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23919 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23920 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23921 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23922 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23923 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23924 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23925 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023926 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023927 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
23928
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023929 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23930 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23931 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23932 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23933 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23934 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23935 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23936 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23937 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23938 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23939 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23940 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23941 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23942 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23943 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23944 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023945 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023946 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
23947
23948 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23949 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23950 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23951 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23952 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23953 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23954 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23955 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23956 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23957 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23958 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23959 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23960 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23961 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23962 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23963 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023964 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023965 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
23966
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023967 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23968 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23969 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23970 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23971 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23972 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23973 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23974 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23975 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23976 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23977 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23978 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23979 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23980 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23981 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23982 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023983 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023984 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
23985
23986 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23987 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23988 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23989 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23990 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23991 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23992 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23993 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23994 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23995 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23996 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23997 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23998 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23999 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24000 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24001 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024002 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024003 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24004
24005 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24006 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24007 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24008 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24009 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24010 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24011 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24012 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24013 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24014 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24015 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24016 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24017 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24018 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24019 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24020 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024021 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024022 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24023
24024 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24025 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24026 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24027 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24028 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24029 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24030 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24031 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24032 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24033 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24034 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24035 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24036 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24037 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24038 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24039 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024040 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024041 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24042
24043 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24044 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24045 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24046 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24047 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24048 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24049 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24050 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24051 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24052 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24053 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24054 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24055 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24056 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24057 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24058 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024059 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024060 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24061
24062 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24063 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24064 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24065 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24066 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24067 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24068 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24069 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24070 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24071 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24072 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24073 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24074 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24075 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24076 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24077 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024078 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024079 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24080
24081 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24082 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24083 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24084 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24085 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24086 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24087 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24088 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24089 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24090 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
24091 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
24092 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
24093 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
24094 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
24095 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
24096 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024097 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024098 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
24099
24100 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
24101 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
24102 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
24103 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
24104 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
24105 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
24106 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
24107 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
24108 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
24109 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
24110 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
24111 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
24112 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
24113 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
24114 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
24115 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024116 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024117 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
24118
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024119 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
24120 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
24121 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
24122 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
24123 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
24124 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
24125 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
24126 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
24127 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
24128 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
24129 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
24130 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
24131 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
24132 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
24133 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
24134 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024135 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024136 {"HDMI", NULL, "HDMI Mixer"},
24137
24138 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
24139 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
24140 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
24141 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
24142 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
24143 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
24144 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
24145 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
24146 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
24147 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
24148 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
24149 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
24150 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
24151 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
24152 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
24153 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024154 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024155 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
24156
Karthikeyan Mani57550082018-05-03 18:43:58 -070024157 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
24158 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
24159 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
24160 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
24161 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
24162 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
24163 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
24164 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
24165 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
24166 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
24167 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
24168 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
24169 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
24170 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
24171 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
24172 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024173 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070024174 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
24175
Ralf Herzc8701f72018-06-20 11:37:35 +020024176 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24177 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24178 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24179 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24180 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24181 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24182 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24183 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24184 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24185 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24186 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24187 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24188 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24189 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24190 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24191 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024192 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024193 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
24194
24195 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24196 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24197 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24198 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24199 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24200 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24201 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24202 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24203 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24204 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24205 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24206 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24207 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24208 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24209 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24210 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024211 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024212 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024213
24214 /* incall */
24215 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
24216 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
24217 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
24218 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
24219 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
24220 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24221 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24222 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24223 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24224 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
24225 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24226 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24227 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24228 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24229 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
24230
24231 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24232 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24233 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24234 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24235 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24236 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24237 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24238 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24239 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24240 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24241 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24242 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24243 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24244 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24245 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24246 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024247 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024248 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
24249
24250 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24251 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24252 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24253 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24254 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24255 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24256 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24257 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24258 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24259 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24260 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24261 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24262 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24263 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24264 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24265 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024266 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024267 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
24268
Surendar Karka3ef3d812018-09-28 18:52:35 +053024269 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24270 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24271 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24272 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24273 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24274 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24275 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24276 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24277 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24278 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24279 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24280 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24281 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24282 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24283 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24284 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24285 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24286 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
24287
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024288 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24289 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24290 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24291 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24292 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24293 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24294 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24295 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24296 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24297 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24298 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24299 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24300 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24301 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24302 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24303 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024304 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024305 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
24306
24307 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24308 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24309 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24310 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24311 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24312 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24313 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
24314 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24315 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24316 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024317 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024318 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24319 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024320 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024321 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024322 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024323 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024324 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024325 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024326 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024327 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024328 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024329 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024330 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024331 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024332 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024333 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
24334 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024335 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024336 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024337 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24338 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24339 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24340 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24341 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024342 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24343 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024344 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024345 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024346 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024347 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24348 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24349 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024350 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024351 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24352 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24353 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24354 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24355 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024356 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024357 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024358 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024359 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24360 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24361 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024362 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024363 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24364 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024365 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024366 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024367 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024368 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024369 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024370 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024371 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024372 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24373 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024374 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024375 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024376 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024377 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024378 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24379 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24380 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024381 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024382 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024383 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24384 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24385 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024386 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024387
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024388 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24389 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24390 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24391 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24392 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24393 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24394 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24395 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24396 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24397 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24398 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24399 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24400 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24401 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24402 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24403 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024404 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024405 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
24406
24407 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24408 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24409 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24410 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24411 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24412 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24413 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24414 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24415 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24416 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24417 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24418 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24419 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24420 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24421 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024422 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024423 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
24424
24425 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24426 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24427 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24428 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24429 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24430 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24431 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24432 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24433 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24434 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24435 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24436 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24437 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24438 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024439 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024440 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
24441
24442 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24443 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24444 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24445 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24446 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24447 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24448 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24449 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24450 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24451 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24452 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24453 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24454 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24455 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024456 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024457 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
24458
24459 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24460 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
24461
24462 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24463 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24464
24465 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24466 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24467 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24468 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24469 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24470 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24471 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24472 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053024473 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024474 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24475 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24476 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24477 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24478 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24479 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24480 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024481 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024482 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
24483
24484 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24485 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24486 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24487 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24488 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24489 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24490 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24491 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24492 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24493 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24494 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24495 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24496 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24497 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24498 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24499 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
24500
24501 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24502 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24503 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24504 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24505 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24506 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24507 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24508 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24509 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24510 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24511 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24512 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24513 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24514 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24515 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24516 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
24517
24518 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24519 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24520 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24521 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24522 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24523 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24524 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24525 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24526 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24527 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24528 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24529 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24530 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24531 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24532 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24533 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24534 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24535 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
24536
Karthikeyan Manic3700752019-03-11 18:33:53 -070024537 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24538 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24539 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24540 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24541 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24542 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24543 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24544 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24545 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24546 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24547 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24548 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24549 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24550 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24551 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24552 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
24553
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024554 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24555 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24556 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24557 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24558 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24559 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24560 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24561 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24562 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24563 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24564 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24565 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24566 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24567 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24568 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24569 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024570 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024571 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
24572
24573 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24574 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24575 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24576 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24577 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24578 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24579 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24580 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24581 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24582 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24583 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24584 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24585 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24586 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24587 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24588 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024589 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024590 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
24591
24592 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24593 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24594 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24595 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24596 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24597 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24598 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24599 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24600 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24601 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24602 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24603 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24604 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24605 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24606 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24607 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024608 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024609 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
24610
24611 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24612 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24613 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24614 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24615 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24616 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24617 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24618 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24619 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24620 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24621 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24622 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24623 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24624 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24625 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24626 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024627 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024628 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
24629
24630 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24631 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24632 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24633 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24634 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24635 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24636 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24637 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24638 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24639 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24640 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24641 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24642 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24643 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24644 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24645 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24646 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
24647
24648 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24649 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24650 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24651 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24652 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24653 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24654 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24655 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24656 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24657 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24658 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24659 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24660 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24661 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24662 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24663 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024664 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024665 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
24666
24667 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24668 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24669 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24670 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24671 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24672 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24673 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24674 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24675 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24676 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24677 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24678 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24679 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24680 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24681 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24682 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024683 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024684 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
24685
24686 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24687 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24688 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24689 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24690 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24691 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24692 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24693 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24694 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24695 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24696 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24697 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24698 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24699 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24700 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24701 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024702 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024703 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
24704
24705 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24706 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24707 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24708 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24709 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24710 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24711 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24712 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24713 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24714 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24715 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24716 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24717 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24718 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24719 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24720 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024721 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024722 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
24723
24724 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24725 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24726 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24727 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24728 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24729 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24730 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24731 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24732 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24733 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24734 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24735 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24736 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24737 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24738 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24739 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24740 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
24741
24742 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24743 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24744 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24745 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24746 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24747 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24748 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24749 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24750 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24751 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24752 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24753 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24754 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24755 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24756 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24757 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024758 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024759 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
24760
24761 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24762 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24763 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24764 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24765 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24766 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24767 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24768 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24769 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24770 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24771 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24772 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24773 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24774 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24775 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24776 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24777 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
24778
24779 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24780 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24781 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24782 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24783 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24784 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24785 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24786 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24787 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24788 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24789 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24790 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24791 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24792 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24793 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24794 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024795 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024796 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
24797
24798 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24799 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24800 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24801 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24802 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24803 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24804 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24805 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24806 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24807 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24808 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24809 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24810 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24811 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24812 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24813 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024814 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024815 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
24816
24817 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24818 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24819 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24820 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24821 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24822 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24823 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24824 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24825 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24826 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24827 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24828 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24829 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24830 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24831 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24832 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024833 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024834 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
24835
24836 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24837 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24838 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24839 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24840 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24841 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24842 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24843 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24844 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24845 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24846 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24847 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24848 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24849 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24850 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24851 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024852 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024853 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
24854
24855 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24856 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24857 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24858 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24859 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24860 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24861 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24862 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24863 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24864 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24865 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24866 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24867 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24868 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24869 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24870 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24871 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024872 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024873 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
24874
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024875 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24876 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24877 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24878 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24879 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24880 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24881 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24882 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24883 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24884 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24885 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24886 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24887 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24888 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24889 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24890 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24891 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
24892
24893 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24894 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24895 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24896 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24897 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24898 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24899 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24900 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24901 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24902 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24903 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24904 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24905 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24906 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24907 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24908 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
24909 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024910 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024911 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
24912
24913 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24914 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24915 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24916 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24917 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24918 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24919 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24920 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24921 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24922 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24923 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24924 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24925 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24926 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24927 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24928 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
24929 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024930 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024931 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
24932
24933 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24934 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24935 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24936 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24937 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24938 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24939 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24940 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24941 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24942 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24943 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24944 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24945 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24946 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24947 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24948 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
24949 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024950 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024951 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
24952
Rohit Kumara5077932017-09-10 22:05:05 +053024953 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24954 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24955 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24956 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24957 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24958 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24959 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24960 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24961 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24962 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24963 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24964 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24965 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24966 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24967 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24968 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24969 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024970 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053024971 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
24972
24973 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24974 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24975 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24976 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24977 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24978 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24979 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24980 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24981 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24982 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24983 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24984 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24985 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24986 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24987 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24988 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24989 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
24990
24991 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24992 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24993 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24994 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24995 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24996 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24997 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24998 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24999 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25000 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25001 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25002 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25003 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25004 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25005 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25006 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25007 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025008 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053025009 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
25010
25011 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25012 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25013 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25014 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25015 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25016 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25017 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25018 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25019 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25020 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25021 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25022 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25023 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25024 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25025 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25026 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25027 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025028 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053025029 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
25030
25031 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25032 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25033 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25034 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25035 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25036 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25037 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25038 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25039 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25040 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25041 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25042 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25043 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25044 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25045 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25046 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25047 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025048 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053025049 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
25050
Karthikeyan Manic3700752019-03-11 18:33:53 -070025051 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25052 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25053 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25054 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25055 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25056 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25057 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25058 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25059 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25060 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25061 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25062 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25063 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25064 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25065 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25066 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25067 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
25068 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
25069 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
25070
25071 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25072 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25073 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25074 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25075 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25076 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25077 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25078 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25079 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25080 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25081 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25082 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25083 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25084 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25085 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25086 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25087 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
25088
25089 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25090 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25091 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25092 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25093 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25094 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25095 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25096 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25097 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25098 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25099 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25100 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25101 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25102 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25103 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25104 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25105 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
25106 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
25107 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
25108
25109 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25110 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25111 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25112 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25113 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25114 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25115 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25116 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25117 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25118 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25119 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25120 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25121 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25122 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25123 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25124 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25125 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
25126 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
25127 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
25128
25129 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25130 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25131 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25132 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25133 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25134 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25135 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25136 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25137 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25138 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25139 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25140 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25141 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25142 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25143 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25144 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25145 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
25146 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
25147 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
25148
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025149 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
25150 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
25151 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
25152 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
25153 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025154 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025155 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025156 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25157 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25158 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25159 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
25160 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025161 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
25162 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025163 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25164 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25165 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25166 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25167 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25168 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25169 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025170 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025171 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25172 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25173 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025174 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025175 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25176 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
25177 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025178 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025179 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25180 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025181 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
25182 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
25183 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025184 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025185 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
25186 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
25187 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025188 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025189 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025190 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
25191 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
25192 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025193 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
25194 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
25195 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025196 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25197 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25198 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
25199 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
25200 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25201 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25202 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25203 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025204 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025205 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25206 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25207 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025208 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025209 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25210 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25211 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025212 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025213 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025214 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25215 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25216 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025217 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025218 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025219 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25220 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25221 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25222 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25223 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025224 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025225 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25226 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25227 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25228 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025229 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025230 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025231
25232 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25233 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25234 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25235 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25236 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25237 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25238 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25239 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25240 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25241 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25242 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25243 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25244 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25245 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25246 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25247 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025248 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025249 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25250 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25251 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25252 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025253 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25254 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25255 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25256 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025257 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25258 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25259 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25260 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25261 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025262 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025263 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25264 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25265 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25266 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25267 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25268 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025269 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25270 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025271
25272 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25273 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25274 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25275 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25276 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25277 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25278 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25279 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25280 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25281 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25282 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25283 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25284 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25285 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25286 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25287 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025288 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025289 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25290 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25291 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25292 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025293 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25294 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25295 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25296 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025297 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25298 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25299 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25300 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25301 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025302 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025303 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25304 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25305 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25306 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25307 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25308 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025309 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25310 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025311
25312 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25313 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25314 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25315 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25316 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25317 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25318 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25319 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25320 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25321 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25322 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25323 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25324 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25325 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25326 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25327 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025328 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025329 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25330 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25331 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25332 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025333 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25334 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25335 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25336 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025337 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25338 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25339 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25340 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25341 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025342 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025343 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25344 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25345 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25346 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25347 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25348 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025349 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25350 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025351
25352 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25353 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25354 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25355 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25356 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25357 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25358 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25359 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25360 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25361 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25362 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25363 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25364 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25365 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25366 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25367 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025368 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025369 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25370 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25371 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25372 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025373 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25374 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25375 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25376 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025377 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25378 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25379 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25380 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25381 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025382 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025383 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25384 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25385 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25386 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25387 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25388 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025389 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25390 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025391
25392 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25393 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25394 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25395 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25396 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25397 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25398 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25399 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25400 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25401 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25402 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25403 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25404 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25405 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25406 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25407 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025408 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025409 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25410 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25411 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25412 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025413 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25414 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25415 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25416 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025417 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25418 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25419 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25420 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25421 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025422 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025423 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25424 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25425 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25426 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25427 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25428 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025429 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25430 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025431
25432 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25433 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25434 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25435 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25436 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25437 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25438 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25439 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25440 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25441 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25442 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25443 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25444 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25445 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25446 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25447 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025448 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025449 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25450 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25451 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25452 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025453 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25454 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25455 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25456 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025457 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25458 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25459 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25460 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25461 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025462 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025463 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25464 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25465 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25466 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25467 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25468 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025469 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25470 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025471
25472 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25473 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25474 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25475 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25476 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25477 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25478 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25479 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25480 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25481 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25482 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25483 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25484 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25485 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25486 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25487 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025488 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025489 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25490 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25491 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25492 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025493 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25494 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25495 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25496 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025497 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25498 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25499 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25500 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25501 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025502 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025503 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25504 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25505 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25506 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25507 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25508 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025509 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25510 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025511
Samyak Jain810e42a2019-01-07 17:53:34 +053025512 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025513 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25514 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25515 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25516 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25517 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25518 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25519 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25520 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025521 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25522 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25523 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25524 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025525 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25526 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25527 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25528 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025529 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25530 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25531 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25532 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25533 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025534 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025535 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25536 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25537 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25538 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25539 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25540 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025541 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25542 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025543 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025544
Laxminath Kasam38070be2017-08-17 18:21:59 +053025545 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25546 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25547 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25548 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25549 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25550 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25551 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25552 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025553 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25554 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25555 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25556 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25557 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25558 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025559 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025560
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025561 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25562 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25563 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25564 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025565 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025566 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025567 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25568 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25569 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25570 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25571 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25572 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25573 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25574 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25575 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25576 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25577 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25578 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25579 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25580 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25581 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25582 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025583 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25584 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25585 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25586 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025587 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25588 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25589 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25590 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025591 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25592 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25593 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25594 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25595 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025596 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025597 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25598 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25599 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25600 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25601 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25602 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025603 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25604 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025605 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025606
Derek Chen07c6d1c2018-07-05 10:39:25 -070025607 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25608 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25609 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25610 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25611 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25612 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25613 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25614 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25615 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25616 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25617 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25618 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25619 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25620 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25621 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25622 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25623 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25624 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25625 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25626 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25627 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25628 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025629 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25630 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25631 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25632 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053025633 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25634 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25635 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25636 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25637 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025638 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053025639 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25640 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25641 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25642 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25643 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25644 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
25645 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25646 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025647 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025648
Surendar Karkac1cde372018-08-14 18:56:24 +053025649 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025650 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025651 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25652 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025653 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025654 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25655 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25656 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25657 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25658 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025659 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025660 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25661 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025662 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025663
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025664 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25665 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25666 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25667 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25668 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25669 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025670 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025671
Asish Bhattacharya34504582017-08-08 12:55:01 +053025672 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25673 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25674 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25675 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25676 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25677 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25678 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25679 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25680 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25681 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25682 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25683 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25684 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25685 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25686 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25687 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25688 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025689 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25690 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25691 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25692 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25693 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025694 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025695 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25696 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25697 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25698 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25699 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25700 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025701 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25702 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025703 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025704
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025705 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25706 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25707 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25708 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25709 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25710 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025711 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025712
25713 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25714 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25715 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25716 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25717 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25718 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025719 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025720 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25721 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025722
25723 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25724 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25725 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25726 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25727 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25728 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025729 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025730 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25731 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025732
25733 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25734 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25735 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25736 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25737 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25738 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025739 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025740 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25741 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025742
25743 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25744 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25745 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25746 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25747 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25748 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025749 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025750 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25751 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025752
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025753 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25754 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25755 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25756 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25757 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25758 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
25759 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
25760 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25761 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
25762
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025763 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25764 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25765 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25766 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25767 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25768 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25769 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25770 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25771 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25772 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25773 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25774 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25775 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25776 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25777 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25778 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25779 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
25780 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
25781
25782 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25783 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25784 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25785 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25786 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25787 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25788 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25789 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25790 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25791 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25792 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25793 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25794 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25795 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25796 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25797 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25798 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
25799 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
25800
25801 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25802 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25803 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25804 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25805 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25806 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25807 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25808 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25809 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25810 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25811 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25812 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25813 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25814 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25815 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25816 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25817 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
25818
25819 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25820 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25821 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25822 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25823 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25824 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25825 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25826 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25827 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25828 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25829 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25830 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25831 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25832 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25833 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25834 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25835 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
25836
25837 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25838 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25839 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025840 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025841 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25842 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25843 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025844 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25845 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025846 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025847 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25848 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025849 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025850 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25851 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025852 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025853 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25854 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25855 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025856 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25857 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025858 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025859 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25860 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25861 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25862
25863 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
25864 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
25865 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025866 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025867 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
25868 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
25869 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025870 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
25871 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025872 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025873 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
25874 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025875 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025876 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
25877 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25878 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
25879 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
25880 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
25881 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
25882 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
25883 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
25884 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025885 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025886 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025887 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
25888 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
25889 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
25890 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025891 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025892 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025893 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
25894 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025895 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025896
25897 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25898 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25899 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25900 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25901 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25902 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25903 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25904 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25905 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25906 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25907 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25908 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25909 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25910 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25911 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25912 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025913 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025914 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
25915
25916 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25917 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25918 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25919 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25920 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25921 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25922 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25923 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25924 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25925 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25926 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25927 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25928 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25929 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25930 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25931 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025932 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025933 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
25934
25935 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25936 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25937 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25938 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25939 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25940 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25941 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25942 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25943 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25944 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25945 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25946 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25947 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25948 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25949 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25950 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25951 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
25952
25953 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25954 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25955 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25956 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25957 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25958 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25959 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25960 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25961 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25962 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25963 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25964 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25965 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25966 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25967 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25968 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25969 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
25970
Rohit Kumara5077932017-09-10 22:05:05 +053025971 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25972 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25973 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25974 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25975 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25976 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25977 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25978 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25979 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25980 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25981 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25982 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25983 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25984 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25985 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25986 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25987 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
25988
Karthikeyan Manic3700752019-03-11 18:33:53 -070025989 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25990 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25991 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25992 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25993 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25994 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25995 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25996 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25997 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25998 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25999 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26000 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26001 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26002 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26003 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26004 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26005 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
26006
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026007 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26008 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26009 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26010 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26011 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26012 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
26013
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026014 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
26015 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26016 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26017 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
26018
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026019 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026020 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26021 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026022 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26023 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26024 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26025 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26026 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
26027
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026028 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
26029 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026030 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26031 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26032 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26033 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
26034
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026035 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
26036 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026037 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26038 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26039 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26040 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
26041
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026042 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26043 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026044 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26045 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26046 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26047 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
26048
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026049 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
26050 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026051 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26052 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26053 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26054 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
26055
Karthikeyan Mani57550082018-05-03 18:43:58 -070026056 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
26057 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26058 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26059 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26060 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26061 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
26062
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026063 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26064 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26065 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26066 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26067 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026068 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
26069
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026070 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26071 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26072 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26073 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26074 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26075 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
26076
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026077 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26078 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026079 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26080 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26081 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26082 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
26083
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026084 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26085 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026086 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26087 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26088 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26089 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
26090
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026091 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26092 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026093 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26094 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26095 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26096 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
26097
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026098 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26099 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026100 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26101 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26102 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26103 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
26104
Rohit Kumara5077932017-09-10 22:05:05 +053026105 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26106 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026107 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26108 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26109 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26110 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
26111
Karthikeyan Manic3700752019-03-11 18:33:53 -070026112 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26113 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26114 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26115 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26116 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26117 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
26118
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026119 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26120 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26121 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26122 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26123 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26124 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
26125 {"HDMI", NULL, "HDMI_DL_HL"},
26126
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026127 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026128 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26129 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026130 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26131 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26132 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080026133 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026134 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
26135
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026136 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026137 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26138 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026139 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26140 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26141 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26142 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26143 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
26144
26145 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26146 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26147 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26148 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26149 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26150 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
26151
26152 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26153 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26154 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26155 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26156 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26157 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
26158
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026159 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026160 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26161 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026162 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26163 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26164 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26165 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26166 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
26167
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026168 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026169 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26170 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026171 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26172 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26173 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26174 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
26175
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026176 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026177 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26178 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026179 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26180 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26181 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26182 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
26183
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026184 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026185 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26186 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26187 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26188 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
26189 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26190 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26191 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26192 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
26193
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026194 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026195 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26196 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26197 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26198 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26199 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26200 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26201 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26202 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
26203
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026204 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026205 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26206 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26207 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26208 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
26209 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26210 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26211 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26212 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
26213
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026214 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026215 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26216 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26217 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26218 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
26219 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26220 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26221 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26222 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
26223
Karthikeyan Manic3700752019-03-11 18:33:53 -070026224 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26225 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26226 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26227 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26228 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
26229
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026230 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26231 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
26232
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026233 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26234 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26235 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
26236
26237 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26238 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26239 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
26240
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026241 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26242 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26243 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26244 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026245 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026246 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070026247 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026248 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026249 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
26250 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
26251
26252 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26253 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26254 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26255 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26256 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26257 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26258 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26259 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26260 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26261 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026262 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26263 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026264
26265 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26266 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26267 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26268 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26269
26270 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26271 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26272 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26273 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26274
26275 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26276 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26277 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26278 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26279
26280 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26281 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26282 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26283 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26284
26285 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26286 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26287 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26288 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26289
26290 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26291 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26292 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26293 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26294
26295 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26296 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26297 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26298 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26299
Laxminath Kasam38070be2017-08-17 18:21:59 +053026300 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26301 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26302 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26303 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26304 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26305 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26306 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26307 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26308 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26309 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026310 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26311 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070026312
26313 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26314 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26315 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26316 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26317
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026318 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26319 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26320 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26321 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26322
26323 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26324 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26325 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26326 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26327
26328 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26329 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26330 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26331 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26332
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026333 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26334 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26335 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26336 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26337
26338 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26339 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26340 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26341 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080026342
26343 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26344 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26345 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26346 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26347 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26348 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26349 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26350 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26351
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026352 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
26353 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
26354 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
26355 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
26356 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
26357 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
26358 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
26359 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026360 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026361 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026362 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
26363 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
26364 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026365 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
26366 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026367 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026368
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026369 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
26370 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
26371 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026372 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026373 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
26374 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
26375 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
26376 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
26377 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
26378 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
26379 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
26380 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
26381 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
26382 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
26383 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
26384 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026385 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026386 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026387 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026388 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
26389 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
26390 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
26391 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
26392 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
26393 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026394 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
26395 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026396 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026397 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
26398
26399 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
26400 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026401 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026402 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
26403 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
26404 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
26405 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
26406 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
26407 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
26408 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
26409 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
26410 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
26411 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
26412 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
26413 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
26414 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026415 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026416 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026417 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
26418 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
26419 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
26420 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
26421 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
26422 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026423 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
26424 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070026425 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026426 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
26427
26428 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
26429 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026430 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026431 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
26432 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
26433 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
26434 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
26435 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
26436 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
26437 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
26438 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
26439 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
26440 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
26441 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
26442 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026443 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026444 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026445 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026446 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026447 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
26448
26449 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
26450 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
26451 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
26452 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
26453 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
26454 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
26455 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
26456 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
26457 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
26458 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080026459 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
26460 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026461 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
26462 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
26463 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
26464 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
26465 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053026466 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26467 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
26468 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026469 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26470 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
26471 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026472 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26473 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26474 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26475 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26476 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26477 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26478 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26479 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026480 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26481 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026482 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026483 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026484 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026485 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
26486
26487 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26488 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26489 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26490 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26491 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26492 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26493 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26494 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026495 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26496 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026497 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026498 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026499 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026500 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
26501
26502
26503 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26504 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26505 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26506 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26507 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26508 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26509 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26510 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026511 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26512 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026513 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026514 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026515 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026516 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
26517
26518
26519 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26520 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26521 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26522 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26523 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26524 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26525 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26526 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026527 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26528 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026529 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026530 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026531 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026532 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
26533
26534 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26535 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26536 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26537 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26538 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26539 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26540 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26541 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026542 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26543 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026544 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026545 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026546 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026547 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
26548
26549 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26550 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26551 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26552 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26553 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26554 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026555 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26556 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026557 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026558 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026559 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026560 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
26561
26562 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26563 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26564 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26565 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26566 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26567 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026568 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26569 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026570 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026571 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026572 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026573 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
26574
26575 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26576 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26577 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26578 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26579 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26580 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026581 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26582 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026583 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026584 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026585 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026586 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
26587
26588
26589 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
26590 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
26591 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
26592 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
26593 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
26594 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
26595 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
26596 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
26597 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
26598 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
26599 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026600 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026601 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026602 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
26603 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
26604 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
26605 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
26606 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
26607 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
26608
26609 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
26610 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
26611 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
26612 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
26613 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
26614 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
26615 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
26616 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
26617 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
26618 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
26619 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
26620 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080026621 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
26622 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026623 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026624 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026625 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026626 {"MI2S_RX", NULL, "MI2S_DL_HL"},
26627 {"MI2S_UL_HL", NULL, "MI2S_TX"},
26628 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
26629 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
26630
26631 /* connect to INT4_MI2S_DL_HL since same pcm_id */
26632 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
26633 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
26634 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
26635 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
26636 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
26637 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
26638 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
26639 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
26640 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
26641 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
26642
26643 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
26644 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026645 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
26646 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026647 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
26648 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026649 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
26650 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
26651 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
26652 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
26653 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
26654 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
26655 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
26656 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
26657 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
26658 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
26659
26660 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
26661 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
26662 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
26663 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
26664 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
26665 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
26666 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
26667 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
26668 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
26669 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
26670 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
26671 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
26672 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
26673 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
26674 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
26675 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026676 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026677 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
26678 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
26679 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
26680 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026681 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026682 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
26683 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
26684 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
26685 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
26686 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
26687 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
26688 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
26689 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026690 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026691 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
26692 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
26693 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
26694 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026695 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026696 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
26697 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
26698 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
26699 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080026700 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053026701 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
26702 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
26703 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
26704 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080026705 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026706 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
26707 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
26708 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
26709 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
26710 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
26711 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
26712 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
26713 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026714
26715 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26716 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26717 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26718 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26719 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26720 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26721 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26722 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26723 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26724 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26725 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26726 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26727 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26728 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26729 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26730 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026731 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26732 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26733 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26734 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026735 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26736 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26737 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26738 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026739 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
26740
26741 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26742 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26743 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26744 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26745 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26746 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26747 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26748 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26749 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26750 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26751 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26752 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26753 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26754 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26755 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26756 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026757 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26758 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26759 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26760 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026761 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26762 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26763 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26764 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026765 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
26766
26767 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26768 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26769 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26770 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26771 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26772 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26773 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26774 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26775 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26776 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26777 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26778 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26779 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26780 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26781 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26782 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026783 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26784 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26785 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26786 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026787 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26788 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26789 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26790 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026791 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
26792
26793 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26794 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26795 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26796 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26797 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26798 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26799 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26800 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26801 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26802 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26803 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26804 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26805 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26806 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26807 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26808 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026809 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26810 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26811 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26812 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026813 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26814 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26815 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26816 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026817 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
26818
26819 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26820 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26821 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26822 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26823 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26824 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26825 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26826 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26827 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26828 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26829 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26830 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26831 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26832 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26833 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26834 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026835 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26836 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26837 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26838 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026839 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26840 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26841 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26842 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026843 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
26844
26845 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26846 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26847 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26848 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26849 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26850 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26851 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26852 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26853 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26854 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26855 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26856 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26857 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26858 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26859 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26860 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026861 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26862 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26863 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26864 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026865 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26866 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26867 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26868 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026869 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
26870
26871 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26872 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26873 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26874 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26875 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26876 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26877 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26878 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26879 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26880 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26881 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26882 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26883 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26884 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26885 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26886 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026887 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26888 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26889 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26890 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026891 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26892 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26893 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26894 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026895 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
26896
26897 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26898 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26899 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26900 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26901 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26902 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26903 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26904 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26905 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26906 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26907 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26908 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26909 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26910 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26911 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26912 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026913 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26914 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26915 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26916 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026917 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26918 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26919 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26920 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026921 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
26922
Derek Chenfdcc0982018-10-02 15:14:03 -070026923 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
26924 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
26925
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026926 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26927 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26928 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26929 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26930 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26931 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26932 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26933 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26934 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26935 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26936 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26937 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26938 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26939 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26940 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26941 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026942 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26943 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26944 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26945 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026946 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26947 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26948 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26949 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026950 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
26951
26952 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26953 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26954 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26955 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26956 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26957 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26958 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26959 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26960 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26961 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26962 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26963 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26964 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26965 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26966 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26967 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026968 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26969 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26970 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26971 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026972 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26973 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26974 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26975 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026976 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
26977
26978 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26979 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26980 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26981 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26982 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26983 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26984 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26985 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26986 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26987 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26988 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26989 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26990 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26991 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26992 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26993 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026994 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26995 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26996 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26997 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026998 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26999 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27000 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27001 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027002 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
27003
27004 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27005 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27006 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27007 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27008 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27009 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27010 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27011 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27012 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27013 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27014 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27015 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27016 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27017 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27018 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27019 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027020 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27021 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27022 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27023 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027024 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27025 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27026 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27027 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027028 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
27029
27030 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27031 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27032 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27033 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27034 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27035 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27036 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27037 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27038 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27039 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27040 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27041 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27042 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27043 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27044 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27045 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027046 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27047 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27048 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27049 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027050 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27051 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27052 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27053 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027054 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
27055
27056 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27057 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27058 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27059 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27060 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27061 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27062 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27063 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27064 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27065 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27066 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27067 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27068 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27069 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27070 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27071 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027072 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27073 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27074 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27075 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027076 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27077 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27078 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27079 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027080 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
27081
27082 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27083 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27084 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27085 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27086 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27087 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27088 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27089 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27090 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27091 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27092 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27093 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27094 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27095 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27096 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27097 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027098 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27099 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27100 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27101 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027102 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27103 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27104 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27105 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027106 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
27107
27108 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27109 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27110 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27111 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27112 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27113 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27114 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27115 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27116 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27117 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27118 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27119 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27120 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27121 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27122 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27123 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027124 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27125 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27126 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27127 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027128 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27129 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27130 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27131 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027132 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
27133
Derek Chenb9048cb2019-03-07 14:54:13 -050027134 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027135 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027136 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
27137
Rohit Kumara5077932017-09-10 22:05:05 +053027138 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27139 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27140 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27141 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27142 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27143 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27144 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27145 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27146 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27147 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27148 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27149 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27150 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27151 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27152 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27153 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27154 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27155 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27156 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27157 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027158 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27159 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27160 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27161 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027162 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027163
27164 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27165 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27166 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27167 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27168 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27169 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27170 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27171 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27172 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27173 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27174 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27175 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27176 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27177 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27178 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27179 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27180 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27181 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27182 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27183 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027184 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27185 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27186 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27187 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027188 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027189
27190 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27191 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27192 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27193 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27194 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27195 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27196 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27197 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27198 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27199 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27200 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27201 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27202 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27203 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27204 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27205 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27206 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27207 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27208 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27209 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027210 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27211 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27212 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27213 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027214 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027215
27216 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27217 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27218 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27219 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27220 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27221 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27222 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27223 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27224 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27225 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27226 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27227 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27228 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27229 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27230 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27231 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27232 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27233 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27234 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27235 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027236 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27237 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27238 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27239 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027240 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027241
27242 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27243 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080027244 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
27245 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027246
Karthikeyan Manic3700752019-03-11 18:33:53 -070027247 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27248 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27249 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27250 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27251 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27252 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27253 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27254 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27255 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27256 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27257 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27258 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27259 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27260 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27261 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27262 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27263 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27264 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27265 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27266 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27267 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
27268
27269 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27270 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27271 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27272 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27273 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27274 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27275 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27276 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27277 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27278 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27279 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27280 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27281 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27282 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27283 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27284 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27285 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27286 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27287 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27288 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27289 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
27290
27291 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27292 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27293 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27294 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27295 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27296 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27297 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27298 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27299 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27300 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27301 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27302 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27303 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27304 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27305 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27306 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27307 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27308 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27309 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27310 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27311 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
27312
27313 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27314 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27315 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27316 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27317 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27318 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27319 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27320 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27321 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27322 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27323 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27324 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27325 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27326 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27327 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27328 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27329 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27330 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27331 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27332 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27333 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
27334
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027335 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27336 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27337 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27338 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027339 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027340 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027341 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27342 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27343 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27344 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027345 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027346 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27347 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
27348
27349 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27350 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27351 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27352 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027353 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027354 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027355 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27356 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27357 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027358 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027359 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27360 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27361 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
27362
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027363 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27364 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080027365 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027366 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027367 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
27368
27369 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
27370 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027371 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027372 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027373
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027374 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27375 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27376 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27377 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27378 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027379 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027380 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27381 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27382 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27383 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027384 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027385 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027386 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27387 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27388 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27389 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27390 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027391 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027392 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027393 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27394 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
27395 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27396 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27397 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
27398 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
27399 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
27400 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
27401 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
27402 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
27403
27404
27405 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27406 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27407 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27408 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27409 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053027410 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027411 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027412 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
27413
27414 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27415 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27416 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027417 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027418 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
27419
27420 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27421 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27422 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27423 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
27424
27425 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27426 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
27427 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27428 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
27429
Rohit Kumara5077932017-09-10 22:05:05 +053027430 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27431 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
27432 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27433 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
27434
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027435 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27436 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27437 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27438 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27439 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27440 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27441 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27442 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027443 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027444 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027445 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
27446 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27447 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27448 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27449 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27450 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27451 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27452 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27453 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27454 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27455 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
27456
27457 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27458 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27459 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27460 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27461 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27462 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27463 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27464 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27465 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27466 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27467 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27468 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
27469
27470 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27471 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27472 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27473 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27474 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27475 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27476 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27477 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27478 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27479 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27480 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027481 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027482 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
27483
kunleizdf5a00a2017-11-27 15:27:36 +080027484 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27485 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027486 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027487
27488 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27489 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027490 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027491
27492 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27493 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027494 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
27495
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027496 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
27497 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027498 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27499 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27500 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27501 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
27502
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027503 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
27504 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027505 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27506 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27507 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27508 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
27509
27510 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27511 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27512 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27513 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
27514 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27515 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27516 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
27517 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
27518 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27519 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
27520 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
27521 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
27522 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
27523
27524 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27525 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27526 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27527 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27528 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027529 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027530 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27531 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27532 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27533 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27534 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27535 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27536 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27537 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
27538
27539 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27540 {"HDMI", NULL, "HDMI_RX Port Mixer"},
27541
27542 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27543 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
27544
Karthikeyan Mani57550082018-05-03 18:43:58 -070027545 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
27546 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
27547
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027548 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27549 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
27550
27551 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27552 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27553 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
27554
27555 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27556 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27557 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27558 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027559 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027560 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027561 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27562 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27563 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27564 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027565 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027566 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
27567
27568 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27569 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27570 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27571 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027572 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027573 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027574 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27575 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27576 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027577 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027578 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
27579
27580 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27581 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27582 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27583 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027584 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027585 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027586 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27587 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27588 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
27589
27590 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27591 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27592 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27593 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027594 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027595 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027596 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27597 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27598 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27599 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27600 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
27601
Rohit Kumara5077932017-09-10 22:05:05 +053027602 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27603 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27604 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27605 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27606 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027607 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027608 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27609 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27610 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
27611
Karthikeyan Manic3700752019-03-11 18:33:53 -070027612 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27613 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27614 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27615 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27616 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
27617 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27618 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27619 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
27620
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027621 /* Backend Enablement */
27622
27623 {"BE_OUT", NULL, "PRI_I2S_RX"},
27624 {"BE_OUT", NULL, "SEC_I2S_RX"},
27625 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
27626 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
27627 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
27628 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27629 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
27630 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
27631 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
27632 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
27633 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027634 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027635 {"BE_OUT", NULL, "USB_AUDIO_RX"},
27636 {"BE_OUT", NULL, "HDMI"},
27637 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070027638 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020027639 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
27640 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027641 {"BE_OUT", NULL, "MI2S_RX"},
27642 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
27643 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027644 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027645 {"BE_OUT", NULL, "TERT_MI2S_RX"},
27646 {"BE_OUT", NULL, "SEC_MI2S_RX"},
27647 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
27648 {"BE_OUT", NULL, "PRI_MI2S_RX"},
27649 {"BE_OUT", NULL, "INT0_MI2S_RX"},
27650 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053027651 {"BE_OUT", NULL, "INT2_MI2S_RX"},
27652 {"BE_OUT", NULL, "INT3_MI2S_RX"},
27653 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027654 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
27655 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
27656 {"BE_OUT", NULL, "INT_FM_RX"},
27657 {"BE_OUT", NULL, "PCM_RX"},
27658 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27659 {"BE_OUT", NULL, "AUX_PCM_RX"},
27660 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
27661 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
27662 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027663 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027664 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027665 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
27666 {"BE_OUT", NULL, "INT_FM_RX"},
27667 {"BE_OUT", NULL, "PCM_RX"},
27668 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27669 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
27670 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
27671 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
27672 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
27673 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
27674 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
27675 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
27676 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
27677 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
27678 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027679 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027680 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
27681 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
27682 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
27683 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
27684 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
27685 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
27686 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
27687 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
27688 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027689 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027690 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
27691 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
27692 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
27693 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027694 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027695 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
27696 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
27697 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
27698 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027699 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
27700 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053027701 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
27702 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
27703 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
27704 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
27705 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
27706 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
27707 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
27708 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027709
27710 {"PRI_I2S_TX", NULL, "BE_IN"},
27711 {"MI2S_TX", NULL, "BE_IN"},
27712 {"QUAT_MI2S_TX", NULL, "BE_IN"},
27713 {"QUIN_MI2S_TX", NULL, "BE_IN"},
27714 {"PRI_MI2S_TX", NULL, "BE_IN"},
27715 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053027716 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027717 {"INT2_MI2S_TX", NULL, "BE_IN"},
27718 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053027719 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027720 {"INT5_MI2S_TX", NULL, "BE_IN"},
27721 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027722 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027723 {"SLIMBUS_0_TX", NULL, "BE_IN" },
27724 {"SLIMBUS_1_TX", NULL, "BE_IN" },
27725 {"SLIMBUS_3_TX", NULL, "BE_IN" },
27726 {"SLIMBUS_4_TX", NULL, "BE_IN" },
27727 {"SLIMBUS_5_TX", NULL, "BE_IN" },
27728 {"SLIMBUS_6_TX", NULL, "BE_IN" },
27729 {"SLIMBUS_7_TX", NULL, "BE_IN" },
27730 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053027731 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027732 {"USB_AUDIO_TX", NULL, "BE_IN" },
27733 {"INT_BT_SCO_TX", NULL, "BE_IN"},
27734 {"INT_FM_TX", NULL, "BE_IN"},
27735 {"PCM_TX", NULL, "BE_IN"},
27736 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27737 {"BE_OUT", NULL, "STUB_RX"},
27738 {"STUB_TX", NULL, "BE_IN"},
27739 {"STUB_1_TX", NULL, "BE_IN"},
27740 {"BE_OUT", NULL, "AUX_PCM_RX"},
27741 {"AUX_PCM_TX", NULL, "BE_IN"},
27742 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
27743 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
27744 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053027745 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027746 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027747 {"INCALL_RECORD_TX", NULL, "BE_IN"},
27748 {"INCALL_RECORD_RX", NULL, "BE_IN"},
27749 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
27750 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027751 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
27752 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027753 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
27754 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
27755 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
27756 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
27757 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027758 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
27759 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027760 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
27761 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
27762 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
27763 {"PRI_TDM_TX_0", NULL, "BE_IN"},
27764 {"PRI_TDM_TX_1", NULL, "BE_IN"},
27765 {"PRI_TDM_TX_2", NULL, "BE_IN"},
27766 {"PRI_TDM_TX_3", NULL, "BE_IN"},
27767 {"SEC_TDM_TX_0", NULL, "BE_IN"},
27768 {"SEC_TDM_TX_1", NULL, "BE_IN"},
27769 {"SEC_TDM_TX_2", NULL, "BE_IN"},
27770 {"SEC_TDM_TX_3", NULL, "BE_IN"},
27771 {"TERT_TDM_TX_0", NULL, "BE_IN"},
27772 {"TERT_TDM_TX_1", NULL, "BE_IN"},
27773 {"TERT_TDM_TX_2", NULL, "BE_IN"},
27774 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027775 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027776 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
27777 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
27778 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
27779 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027780 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053027781 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053027782 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
27783 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
27784 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
27785 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080027786 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027787 {"SEN_TDM_TX_0", NULL, "BE_IN"},
27788 {"SEN_TDM_TX_1", NULL, "BE_IN"},
27789 {"SEN_TDM_TX_2", NULL, "BE_IN"},
27790 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027791 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
27792 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
27793 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
27794 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
27795 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027796 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053027797 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
27798 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
27799 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
27800 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
27801 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
27802 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020027803 {"PRI_SPDIF_TX", NULL, "BE_IN"},
27804 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027805};
27806
27807static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
27808 struct snd_pcm_hw_params *params)
27809{
27810 struct snd_soc_pcm_runtime *rtd = substream->private_data;
27811 unsigned int be_id = rtd->dai_link->id;
27812
27813 if (be_id >= MSM_BACKEND_DAI_MAX) {
27814 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
27815 return -EINVAL;
27816 }
27817
27818 mutex_lock(&routing_lock);
27819 msm_bedais[be_id].sample_rate = params_rate(params);
27820 msm_bedais[be_id].channel = params_channels(params);
27821 msm_bedais[be_id].format = params_format(params);
27822 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
27823 __func__, msm_bedais[be_id].sample_rate,
27824 msm_bedais[be_id].format, be_id);
27825 mutex_unlock(&routing_lock);
27826 return 0;
27827}
27828
27829static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
27830{
27831 struct snd_soc_pcm_runtime *rtd = substream->private_data;
27832 unsigned int be_id = rtd->dai_link->id;
27833 int i, session_type, path_type, topology;
27834 struct msm_pcm_routing_bdai_data *bedai;
27835 struct msm_pcm_routing_fdai_data *fdai;
27836
27837 pr_debug("%s: substream->pcm->id:%s\n",
27838 __func__, substream->pcm->id);
27839
27840 if (be_id >= MSM_BACKEND_DAI_MAX) {
27841 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
27842 return -EINVAL;
27843 }
27844
27845 bedai = &msm_bedais[be_id];
27846 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
27847 0 : 1);
27848 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
27849 path_type = ADM_PATH_PLAYBACK;
27850 else
27851 path_type = ADM_PATH_LIVE_REC;
27852
27853 mutex_lock(&routing_lock);
27854 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
27855 if (!is_mm_lsm_fe_id(i))
27856 continue;
27857 fdai = &fe_dai_map[i][session_type];
27858 if (fdai->strm_id != INVALID_SESSION) {
27859 int idx;
27860 int port_id;
27861 unsigned long copp =
27862 session_copp_map[i][session_type][be_id];
27863 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
27864 if (test_bit(idx, &copp))
27865 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070027866
27867 if (idx >= MAX_COPPS_PER_PORT) {
27868 pr_debug("%s: copp idx is invalid, exiting\n",
27869 __func__);
27870 continue;
27871 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027872 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053027873 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027874 topology = adm_get_topology_for_port_copp_idx(port_id,
27875 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070027876 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053027877 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027878 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
27879 __func__, copp, i, session_type, be_id,
27880 topology);
27881 clear_bit(idx,
27882 &session_copp_map[i][session_type][be_id]);
27883 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027884 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053027885 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027886 topology);
27887 }
27888 }
27889
27890 bedai->active = 0;
27891 bedai->sample_rate = 0;
27892 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027893 mutex_unlock(&routing_lock);
27894
27895 return 0;
27896}
27897
27898static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
27899{
27900 struct snd_soc_pcm_runtime *rtd = substream->private_data;
27901 unsigned int be_id = rtd->dai_link->id;
27902 int i, path_type, topology;
27903 int session_type = INVALID_SESSION;
27904 struct msm_pcm_routing_bdai_data *bedai;
27905 u32 channels, sample_rate;
27906 uint16_t bits_per_sample = 16, voc_path_type;
27907 struct msm_pcm_routing_fdai_data *fdai;
27908 u32 session_id;
27909 struct media_format_info voc_be_media_format;
27910 bool is_lsm;
27911
27912 pr_debug("%s: substream->pcm->id:%s\n",
27913 __func__, substream->pcm->id);
27914
27915 if (be_id >= MSM_BACKEND_DAI_MAX) {
27916 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
27917 return -EINVAL;
27918 }
27919
27920 bedai = &msm_bedais[be_id];
27921
27922 mutex_lock(&routing_lock);
27923 if (bedai->active == 1)
27924 goto done; /* Ignore prepare if back-end already active */
27925
27926 /* AFE port is not active at this point. However, still
27927 * go ahead setting active flag under the notion that
27928 * QDSP6 is able to handle ADM starting before AFE port
27929 * is started.
27930 */
27931 bedai->active = 1;
27932
27933 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
27934 if (!(is_mm_lsm_fe_id(i) &&
27935 route_check_fe_id_adm_support(i)))
27936 continue;
27937
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027938 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
27939 SESSION_TYPE_RX : SESSION_TYPE_TX;
27940 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027941 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027942 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027943 path_type = ADM_PATH_COMPRESSED_RX;
27944 else
27945 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027946 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027947 if ((fdai->passthr_mode != LEGACY_PCM) &&
27948 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020027949 path_type = ADM_PATH_COMPRESSED_TX;
27950 else
27951 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027952 }
27953
27954 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
27955 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027956 if (fdai->strm_id != INVALID_SESSION) {
27957 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053027958 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027959
27960 if (session_type == SESSION_TYPE_TX &&
27961 fdai->be_srate &&
27962 (fdai->be_srate != bedai->sample_rate)) {
27963 pr_debug("%s: flush strm %d diff BE rates\n",
27964 __func__,
27965 fdai->strm_id);
27966
27967 if (fdai->event_info.event_func)
27968 fdai->event_info.event_func(
27969 MSM_PCM_RT_EVT_BUF_RECFG,
27970 fdai->event_info.priv_data);
27971 fdai->be_srate = 0; /* might not need it */
27972 }
27973 bits_per_sample = msm_routing_get_bit_width(
27974 bedai->format);
27975
27976 app_type =
27977 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
27978 if (app_type && is_lsm) {
27979 app_type_idx =
27980 msm_pcm_routing_get_lsm_app_type_idx(app_type);
27981 sample_rate =
27982 fe_dai_app_type_cfg[i][session_type][be_id]
27983 .sample_rate;
27984 bits_per_sample =
27985 lsm_app_type_cfg[app_type_idx].bit_width;
27986 } else if (app_type) {
27987 app_type_idx =
27988 msm_pcm_routing_get_app_type_idx(app_type);
27989 sample_rate =
27990 fe_dai_app_type_cfg[i][session_type]
27991 [be_id].sample_rate;
27992 bits_per_sample =
27993 app_type_cfg[app_type_idx].bit_width;
27994 } else
27995 sample_rate = bedai->sample_rate;
27996 /*
27997 * check if ADM needs to be configured with different
27998 * channel mapping than backend
27999 */
28000 if (!bedai->adm_override_ch)
28001 channels = bedai->channel;
28002 else
28003 channels = bedai->adm_override_ch;
28004 acdb_dev_id =
28005 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
28006 topology = msm_routing_get_adm_topology(i, session_type,
28007 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020028008
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028009 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
28010 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
28011 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020028012 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
28013
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053028014 if (hifi_filter_enabled)
28015 bits_per_sample = msm_routing_get_bit_width(
28016 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +053028017 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028018 sample_rate, channels, topology,
28019 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053028020 app_type, acdb_dev_id,
28021 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028022 if ((copp_idx < 0) ||
28023 (copp_idx >= MAX_COPPS_PER_PORT)) {
28024 pr_err("%s: adm open failed\n", __func__);
28025 mutex_unlock(&routing_lock);
28026 return -EINVAL;
28027 }
28028 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
28029 __func__, i, session_type, be_id);
28030 set_bit(copp_idx,
28031 &session_copp_map[i][session_type][be_id]);
28032
28033 if (msm_is_resample_needed(
28034 sample_rate,
28035 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053028036 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028037 bedai->sample_rate);
28038
28039 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028040 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028041 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028042 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028043 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028044 topology, channels);
28045 }
28046 }
28047
28048 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28049 session_id = msm_pcm_routing_get_voc_sessionid(i);
28050 if (session_id) {
28051 pr_debug("%s voice session_id: 0x%x\n", __func__,
28052 session_id);
28053
28054 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28055 voc_path_type = RX_PATH;
28056 else
28057 voc_path_type = TX_PATH;
28058
28059 voc_set_route_flag(session_id, voc_path_type, 1);
28060
28061 memset(&voc_be_media_format, 0,
28062 sizeof(struct media_format_info));
28063
28064 voc_be_media_format.port_id = bedai->port_id;
28065 voc_be_media_format.num_channels = bedai->channel;
28066 voc_be_media_format.sample_rate = bedai->sample_rate;
28067 voc_be_media_format.bits_per_sample = bedai->format;
28068 /* Defaulting this to 1 for voice call usecases */
28069 voc_be_media_format.channel_mapping[0] = 1;
28070
28071 voc_set_device_config(session_id, voc_path_type,
28072 &voc_be_media_format);
28073
28074 if (voc_get_route_flag(session_id, RX_PATH) &&
28075 voc_get_route_flag(session_id, TX_PATH))
28076 voc_enable_device(session_id);
28077 }
28078 }
28079
28080 /* Check if backend is an external ec ref port and set as needed */
28081 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
28082
28083 memset(&voc_be_media_format, 0,
28084 sizeof(struct media_format_info));
28085
28086 /* Get format info for ec ref port from msm_bedais[] */
28087 voc_be_media_format.port_id = bedai->port_id;
28088 voc_be_media_format.num_channels = bedai->channel;
28089 voc_be_media_format.bits_per_sample = bedai->format;
28090 voc_be_media_format.sample_rate = bedai->sample_rate;
28091 /* Defaulting this to 1 for voice call usecases */
28092 voc_be_media_format.channel_mapping[0] = 1;
28093 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
28094 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
28095 __func__, voc_be_media_format.port_id,
28096 voc_be_media_format.num_channels,
28097 voc_be_media_format.bits_per_sample,
28098 voc_be_media_format.sample_rate);
28099 }
28100
28101done:
28102 mutex_unlock(&routing_lock);
28103
28104 return 0;
28105}
28106
28107static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
28108 int fe_id)
28109{
28110 int index, topo_id, be_idx;
28111 unsigned long pp_config = 0;
28112 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028113 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028114 bool compr_passthr_mode = true;
28115
28116 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
28117
28118 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
28119 pr_err("%s: Device pp params on invalid port %d\n",
28120 __func__, port_id);
28121 return -EINVAL;
28122 }
28123
28124 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28125 if (port_id == msm_bedais[be_idx].port_id)
28126 break;
28127 }
28128
28129 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28130 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28131 return -EINVAL;
28132 }
28133
28134 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28135 if (msm_bedais_pp_params[index].port_id == port_id)
28136 break;
28137 }
28138 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28139 pr_err("%s: Invalid backend pp params index %d\n",
28140 __func__, index);
28141 return -EINVAL;
28142 }
28143
28144 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
28145 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
28146 pr_err("%s: Invalid passthrough topology 0x%x\n",
28147 __func__, topo_id);
28148 return -EINVAL;
28149 }
28150
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028151 session_type =
28152 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28153 SESSION_TYPE_RX : SESSION_TYPE_TX;
28154
28155 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
28156 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028157 compr_passthr_mode = false;
28158
28159 pp_config = msm_bedais_pp_params[index].pp_params_config;
28160 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
28161 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28162 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
28163 mute_on = msm_bedais_pp_params[index].mute_on;
28164 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28165 adm_send_compressed_device_mute(port_id,
28166 copp_idx,
28167 mute_on);
28168 }
28169 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
28170 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28171 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
28172 &pp_config);
28173 latency = msm_bedais_pp_params[index].latency;
28174 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28175 adm_send_compressed_device_latency(port_id,
28176 copp_idx,
28177 latency);
28178 }
28179 return 0;
28180}
28181
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028182static uint32_t msm_routing_get_topology(size_t data_size, void *data)
28183{
28184 uint32_t topology = NULL_COPP_TOPOLOGY;
28185 void *cal_info = NULL;
28186 uint32_t size = 0;
28187
28188 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053028189 if (data_size < sizeof(struct audio_cal_type_basic) +
28190 sizeof(struct audio_cal_info_adm_top)) {
28191 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
28192 goto done;
28193 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028194 size = data_size - sizeof(struct audio_cal_type_basic);
28195 cal_info = kzalloc(size, GFP_KERNEL);
28196
28197 if (!cal_info)
28198 goto done;
28199
28200 memcpy(cal_info,
28201 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
28202
28203 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
28204 kfree(cal_info);
28205 cal_info = NULL;
28206
28207done:
28208 pr_debug("%s: Using topology %d\n", __func__, topology);
28209
28210 return topology;
28211}
28212
28213static void msm_routing_load_topology(size_t data_size, void *data)
28214{
28215 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028216 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028217
28218 topology_id = msm_routing_get_topology(data_size, data);
28219 if (topology_id != NULL_COPP_TOPOLOGY)
28220 ret = q6core_load_unload_topo_modules(topology_id,
28221 CORE_LOAD_TOPOLOGY);
28222 if (ret < 0)
28223 pr_debug("%s %d load topology failed\n",
28224 __func__, topology_id);
28225
28226}
28227
28228static void msm_routing_unload_topology(uint32_t topology_id)
28229{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028230 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028231
28232 if (topology_id != NULL_COPP_TOPOLOGY)
28233 ret = q6core_load_unload_topo_modules(topology_id,
28234 CORE_UNLOAD_TOPOLOGY);
28235 if (ret < 0)
28236 pr_debug("%s %d unload topology failed\n",
28237 __func__, topology_id);
28238
28239}
28240
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028241static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28242 struct snd_ctl_elem_value *ucontrol)
28243{
28244 int pp_id = ucontrol->value.integer.value[0];
28245 int port_id = 0;
28246 int index, be_idx, i, topo_id, idx;
28247 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028248 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028249 bool compr_passthr_mode = true;
28250
28251 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
28252
28253 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28254 port_id = msm_bedais[be_idx].port_id;
28255 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
28256 break;
28257 }
28258
28259 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28260 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28261 return -EINVAL;
28262 }
28263
28264 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28265 if (msm_bedais_pp_params[index].port_id == port_id)
28266 break;
28267 }
28268 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28269 pr_err("%s: Invalid pp params backend index %d\n",
28270 __func__, index);
28271 return -EINVAL;
28272 }
28273
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028274 session_type =
28275 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28276 SESSION_TYPE_RX : SESSION_TYPE_TX;
28277
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028278 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
28279 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028280 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
28281 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028282 compr_passthr_mode = false;
28283
28284 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28285 unsigned long copp =
28286 session_copp_map[i]
28287 [SESSION_TYPE_RX][be_idx];
28288 if (!test_bit(idx, &copp))
28289 continue;
28290 topo_id = adm_get_topology_for_port_copp_idx(port_id,
28291 idx);
28292 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
28293 continue;
28294 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
28295 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028296 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028297 switch (pp_id) {
28298 case ADM_PP_PARAM_MUTE_ID:
28299 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28300 mute = ucontrol->value.integer.value[1] ? true : false;
28301 msm_bedais_pp_params[index].mute_on = mute;
28302 set_bit(ADM_PP_PARAM_MUTE_BIT,
28303 &msm_bedais_pp_params[index].pp_params_config);
28304 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28305 adm_send_compressed_device_mute(port_id,
28306 idx, mute);
28307 break;
28308 case ADM_PP_PARAM_LATENCY_ID:
28309 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28310 msm_bedais_pp_params[index].latency =
28311 ucontrol->value.integer.value[1];
28312 set_bit(ADM_PP_PARAM_LATENCY_BIT,
28313 &msm_bedais_pp_params[index].pp_params_config);
28314 latency = msm_bedais_pp_params[index].latency =
28315 ucontrol->value.integer.value[1];
28316 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28317 adm_send_compressed_device_latency(port_id,
28318 idx, latency);
28319 break;
28320 default:
28321 pr_info("%s, device pp param %d not supported\n",
28322 __func__, pp_id);
28323 break;
28324 }
28325 }
28326 }
28327 return 0;
28328}
28329
28330static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28331 struct snd_ctl_elem_value *ucontrol)
28332{
28333 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
28334 return 0;
28335}
28336
28337static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
28338 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
28339 0, 3, msm_routing_get_device_pp_params_mixer,
28340 msm_routing_put_device_pp_params_mixer),
28341};
28342
28343static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
28344 struct snd_ctl_elem_value *ucontrol)
28345{
28346 ucontrol->value.integer.value[0] =
28347 core_get_license_status(ASM_MEDIA_FMT_APTX);
28348 pr_debug("%s: status %ld\n", __func__,
28349 ucontrol->value.integer.value[0]);
28350 return 0;
28351}
28352
28353static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
28354 struct snd_ctl_elem_value *ucontrol)
28355{
28356 int32_t status = 0;
28357
28358 status = core_set_license(ucontrol->value.integer.value[0],
28359 APTX_CLASSIC_DEC_LICENSE_ID);
28360 pr_debug("%s: status %d\n", __func__, status);
28361 return status;
28362}
28363
28364static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
28365 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
28366 0xFFFF, 0, msm_aptx_dec_license_control_get,
28367 msm_aptx_dec_license_control_put),
28368};
28369
Rohit kumar63ffaa72019-02-01 18:05:33 +053028370static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
28371 struct snd_ctl_elem_value *ucontrol)
28372{
28373 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
28374 uint32_t be_idx = ucontrol->value.integer.value[0];
28375 int i;
28376
28377 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
28378 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
28379 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
28380 pr_err("%s: Invalid channel map %d\n",
28381 __func__, channel_map[i]);
28382 return -EINVAL;
28383 }
28384 }
28385 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
28386
28387 return 0;
28388}
28389
28390static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
28391 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
28392 MSM_BACKEND_DAI_MAX, 0,
28393 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
28394 msm_routing_put_port_chmap_mixer),
28395};
28396
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028397static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
28398 struct snd_ctl_elem_info *uinfo)
28399{
28400 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
28401 uinfo->count = sizeof(be_dai_name_table);
28402 return 0;
28403}
28404
28405static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
28406 unsigned int __user *bytes,
28407 unsigned int size)
28408{
28409 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028410 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028411
28412 if (size < sizeof(be_dai_name_table)) {
28413 pr_err("%s: invalid size %d requested, returning\n",
28414 __func__, size);
28415 ret = -EINVAL;
28416 goto done;
28417 }
28418
28419 /*
28420 * Fill be_dai_name_table from msm_bedais table to reduce code changes
28421 * needed when adding new backends
28422 */
28423 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
28424 be_dai_name_table[i].be_id = i;
28425 strlcpy(be_dai_name_table[i].be_name,
28426 msm_bedais[i].name,
28427 LPASS_BE_NAME_MAX_LENGTH);
28428 }
28429
28430 ret = copy_to_user(bytes, &be_dai_name_table,
28431 sizeof(be_dai_name_table));
28432 if (ret) {
28433 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
28434 ret = -EFAULT;
28435 }
28436
28437done:
28438 return ret;
28439}
28440
28441static const struct snd_kcontrol_new
28442 msm_routing_be_dai_name_table_mixer_controls[] = {
28443 {
28444 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
28445 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
28446 .info = msm_routing_be_dai_name_table_info,
28447 .name = "Backend DAI Name Table",
28448 .tlv.c = snd_soc_bytes_tlv_callback,
28449 .private_value = (unsigned long) &(struct soc_bytes_ext) {
28450 .max = sizeof(be_dai_name_table),
28451 .get = msm_routing_be_dai_name_table_tlv_get,
28452 }
28453 },
28454};
28455
28456static int msm_routing_stereo_channel_reverse_control_get(
28457 struct snd_kcontrol *kcontrol,
28458 struct snd_ctl_elem_value *ucontrol)
28459{
28460 ucontrol->value.integer.value[0] = swap_ch;
28461 pr_debug("%s: Swap channel value: %ld\n", __func__,
28462 ucontrol->value.integer.value[0]);
28463 return 0;
28464}
28465
28466static int msm_routing_stereo_channel_reverse_control_put(
28467 struct snd_kcontrol *kcontrol,
28468 struct snd_ctl_elem_value *ucontrol)
28469{
28470 int i, idx, be_index, port_id;
28471 int ret = 0;
28472 unsigned long copp;
28473
28474 pr_debug("%s Swap channel value:%ld\n", __func__,
28475 ucontrol->value.integer.value[0]);
28476
28477 swap_ch = ucontrol->value.integer.value[0];
28478
28479 mutex_lock(&routing_lock);
28480 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
28481 port_id = msm_bedais[be_index].port_id;
28482 if (!msm_bedais[be_index].active)
28483 continue;
28484
28485 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
28486 MSM_FRONTEND_DAI_MM_SIZE) {
28487 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
28488 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28489 if (!test_bit(idx, &copp))
28490 continue;
28491
28492 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
28493 __func__, port_id, idx);
28494 ret = adm_swap_speaker_channels(
28495 port_id, idx,
28496 msm_bedais[be_index].sample_rate,
28497 swap_ch);
28498 if (ret) {
28499 pr_err("%s:Swap_channel failed, err=%d\n",
28500 __func__, ret);
28501 goto done;
28502 }
28503 }
28504 }
28505 }
28506done:
28507 mutex_unlock(&routing_lock);
28508 return ret;
28509}
28510
28511static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
28512 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
28513 1, 0, msm_routing_stereo_channel_reverse_control_get,
28514 msm_routing_stereo_channel_reverse_control_put),
28515};
28516
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028517static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
28518 struct snd_ctl_elem_info *uinfo)
28519{
28520 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
28521 uinfo->count = 1;
28522 return 0;
28523}
28524
28525static int msm_routing_instance_id_support_put(
28526 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
28527{
28528 bool supported = ucontrol->value.integer.value[0] ? true : false;
28529
28530 q6common_update_instance_id_support(supported);
28531 return 0;
28532}
28533
28534static int msm_routing_instance_id_support_get(
28535 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
28536{
28537 bool supported = false;
28538
28539 supported = q6common_is_instance_id_supported();
28540 ucontrol->value.integer.value[0] = supported ? 1 : 0;
28541
28542 return 0;
28543}
28544
28545static const struct snd_kcontrol_new
28546 msm_routing_feature_support_mixer_controls[] = {
28547 {
28548 .access = SNDRV_CTL_ELEM_ACCESS_READ |
28549 SNDRV_CTL_ELEM_ACCESS_WRITE,
28550 .info = msm_routing_instance_id_support_info,
28551 .name = "Instance ID Support",
28552 .put = msm_routing_instance_id_support_put,
28553 .get = msm_routing_instance_id_support_get,
28554 },
28555};
28556
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028557static const struct snd_pcm_ops msm_routing_pcm_ops = {
28558 .hw_params = msm_pcm_routing_hw_params,
28559 .close = msm_pcm_routing_close,
28560 .prepare = msm_pcm_routing_prepare,
28561};
28562
28563/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080028564static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028565{
Meng Wangee084a02018-09-04 16:11:58 +080028566 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028567 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080028568 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
28569 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080028570 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028571 ARRAY_SIZE(intercon));
28572
Meng Wangee084a02018-09-04 16:11:58 +080028573 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028574
Meng Wangee084a02018-09-04 16:11:58 +080028575 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028576 ARRAY_SIZE(lsm_controls));
28577
Meng Wangee084a02018-09-04 16:11:58 +080028578 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028579 ARRAY_SIZE(aanc_slim_0_rx_mux));
28580
Meng Wangee084a02018-09-04 16:11:58 +080028581 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053028582 ARRAY_SIZE(aanc_noise_level));
28583
Meng Wangee084a02018-09-04 16:11:58 +080028584 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028585 ARRAY_SIZE(msm_voc_session_controls));
28586
Meng Wangee084a02018-09-04 16:11:58 +080028587 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028588 ARRAY_SIZE(app_type_cfg_controls));
28589
Meng Wangee084a02018-09-04 16:11:58 +080028590 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028591 ARRAY_SIZE(lsm_app_type_cfg_controls));
28592
Meng Wangee084a02018-09-04 16:11:58 +080028593 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070028594 ARRAY_SIZE(module_cfg_controls));
28595
Meng Wangee084a02018-09-04 16:11:58 +080028596 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028597 stereo_to_custom_stereo_controls,
28598 ARRAY_SIZE(stereo_to_custom_stereo_controls));
28599
Meng Wangee084a02018-09-04 16:11:58 +080028600 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028601 ARRAY_SIZE(ec_ref_param_controls));
28602
Meng Wangee084a02018-09-04 16:11:58 +080028603 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028604 ARRAY_SIZE(channel_mixer_controls));
28605
Meng Wangee084a02018-09-04 16:11:58 +080028606 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028607
Meng Wangee084a02018-09-04 16:11:58 +080028608 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028609
Meng Wangee084a02018-09-04 16:11:58 +080028610 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028611
Meng Wangee084a02018-09-04 16:11:58 +080028612 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028613 use_ds1_or_ds2_controls,
28614 ARRAY_SIZE(use_ds1_or_ds2_controls));
28615
Meng Wangee084a02018-09-04 16:11:58 +080028616 snd_soc_add_component_controls(component,
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053028617 hifi_filter_controls,
28618 ARRAY_SIZE(hifi_filter_controls));
28619
28620 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028621 device_pp_params_mixer_controls,
28622 ARRAY_SIZE(device_pp_params_mixer_controls));
28623
Meng Wangee084a02018-09-04 16:11:58 +080028624 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028625 msm_routing_be_dai_name_table_mixer_controls,
28626 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
28627
Meng Wangee084a02018-09-04 16:11:58 +080028628 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028629 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080028630 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028631 ARRAY_SIZE(adm_channel_config_controls));
28632
Meng Wangee084a02018-09-04 16:11:58 +080028633 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028634 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080028635 snd_soc_add_component_controls(component,
28636 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028637 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080028638 snd_soc_add_component_controls(
28639 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028640 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053028641 snd_soc_add_component_controls(component,
28642 port_multi_channel_map_mixer_controls,
28643 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028644
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028645 return 0;
28646}
28647
28648int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
28649{
28650 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
28651}
28652
28653void msm_routing_pcm_free(struct snd_pcm *pcm)
28654{
28655 msm_pcm_routing_hwdep_free(pcm);
28656}
28657
Meng Wangee084a02018-09-04 16:11:58 +080028658static struct snd_soc_component_driver msm_soc_routing_component = {
28659 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028660 .ops = &msm_routing_pcm_ops,
28661 .probe = msm_routing_probe,
28662 .pcm_new = msm_routing_pcm_new,
28663 .pcm_free = msm_routing_pcm_free,
28664};
28665
28666static int msm_routing_pcm_probe(struct platform_device *pdev)
28667{
28668
28669 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080028670 return snd_soc_register_component(&pdev->dev,
28671 &msm_soc_routing_component,
28672 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028673}
28674
28675static int msm_routing_pcm_remove(struct platform_device *pdev)
28676{
Meng Wangee084a02018-09-04 16:11:58 +080028677 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028678 return 0;
28679}
28680
28681static const struct of_device_id msm_pcm_routing_dt_match[] = {
28682 {.compatible = "qcom,msm-pcm-routing"},
28683 {}
28684};
28685MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
28686
28687static struct platform_driver msm_routing_pcm_driver = {
28688 .driver = {
28689 .name = "msm-pcm-routing",
28690 .owner = THIS_MODULE,
28691 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080028692 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028693 },
28694 .probe = msm_routing_pcm_probe,
28695 .remove = msm_routing_pcm_remove,
28696};
28697
28698int msm_routing_check_backend_enabled(int fedai_id)
28699{
28700 int i;
28701
28702 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
28703 /* bad ID assigned in machine driver */
28704 pr_err("%s: bad MM ID\n", __func__);
28705 return 0;
28706 }
28707 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
28708 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
28709 return msm_bedais[i].active;
28710 }
28711 return 0;
28712}
28713
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028714static int get_cal_type_index(int32_t cal_type)
28715{
28716 int ret = -EINVAL;
28717
28718 switch (cal_type) {
28719 case ADM_TOPOLOGY_CAL_TYPE:
28720 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
28721 break;
28722 case ADM_LSM_TOPOLOGY_CAL_TYPE:
28723 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
28724 break;
28725 default:
28726 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
28727 }
28728 return ret;
28729}
28730
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028731static int msm_routing_set_cal(int32_t cal_type,
28732 size_t data_size, void *data)
28733{
28734 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028735 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028736 pr_debug("%s\n", __func__);
28737
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028738 cal_index = get_cal_type_index(cal_type);
28739 if (cal_index < 0) {
28740 pr_err("%s: Could not get cal index %d\n",
28741 __func__, cal_index);
28742 ret = -EINVAL;
28743 goto done;
28744 }
28745
28746 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028747 if (ret < 0) {
28748 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
28749 __func__, ret, cal_type);
28750 ret = -EINVAL;
28751 goto done;
28752 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028753 /* Pre-load if it is ADM topology */
28754 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
28755 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
28756 msm_routing_load_topology(data_size, data);
28757 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028758done:
28759 return ret;
28760}
28761
28762static void msm_routing_delete_cal_data(void)
28763{
28764 pr_debug("%s\n", __func__);
28765
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028766 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028767}
28768
28769static int msm_routing_init_cal_data(void)
28770{
28771 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028772 struct cal_type_info cal_type_info[] = {
28773 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028774 {NULL, NULL, NULL,
28775 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028776 {NULL, NULL, cal_utils_match_buf_num} },
28777
28778 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
28779 {NULL, NULL, NULL,
28780 msm_routing_set_cal, NULL, NULL} },
28781 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028782 };
28783 pr_debug("%s\n", __func__);
28784
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028785 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
28786 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028787 if (ret < 0) {
28788 pr_err("%s: could not create cal type!\n",
28789 __func__);
28790 ret = -EINVAL;
28791 goto err;
28792 }
28793
28794 return ret;
28795err:
28796 msm_routing_delete_cal_data();
28797 return ret;
28798}
28799
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053028800int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028801{
28802 mutex_init(&routing_lock);
28803 if (msm_routing_init_cal_data())
28804 pr_err("%s: could not init cal data!\n", __func__);
28805
28806 afe_set_routing_callback(
28807 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
28808
28809 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
28810 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
28811
28812 return platform_driver_register(&msm_routing_pcm_driver);
28813}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028814
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053028815void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028816{
28817 msm_routing_delete_cal_data();
28818 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
28819 mutex_destroy(&routing_lock);
28820 platform_driver_unregister(&msm_routing_pcm_driver);
28821}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028822
28823MODULE_DESCRIPTION("MSM routing platform driver");
28824MODULE_LICENSE("GPL v2");