blob: f913c58d39eee326733d5b7f107f4744706cdc19 [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;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053060static int int0_mi2s_switch_enable;
61static int int4_mi2s_switch_enable;
62static int pri_mi2s_switch_enable;
63static int sec_mi2s_switch_enable;
64static int tert_mi2s_switch_enable;
65static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053066static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053067static int fm_pcmrx_switch_enable;
68static int usb_switch_enable;
69static int lsm_port_index;
70static int slim0_rx_aanc_fb_port;
71static int msm_route_ec_ref_rx;
72static int msm_ec_ref_ch = 4;
Dhananjay Kumar242b5b02019-01-16 22:45:12 +053073static int msm_ec_ref_ch_downmixed = 4;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053074static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
75static int msm_ec_ref_sampling_rate = 48000;
76static uint32_t voc_session_id = ALL_SESSION_VSID;
77static int msm_route_ext_ec_ref;
78static bool is_custom_stereo_on;
79static bool is_ds2_on;
80static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053081static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080082static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053083static int msm_ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053084
85#define WEIGHT_0_DB 0x4000
86/* all the FEs which can support channel mixer */
87static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053088
89/* all the FES which can support channel mixer for bidirection */
90static struct msm_pcm_channel_mixer
91 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
92
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053093/* input BE for each FE */
94static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
95
96enum {
97 MADNONE,
98 MADAUDIO,
99 MADBEACON,
100 MADULTRASOUND,
101 MADSWAUDIO,
102};
103
104#define ADM_LSM_PORT_INDEX 9
105
106#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
107#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
108#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
109#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
110#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
111#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
112#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
113#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
114#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
115#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530116#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
117#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800118#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530119#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530120#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530121
122#define LSM_FUNCTION_TEXT "LSM Function"
123static const char * const lsm_port_text[] = {
124 "None",
125 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
126 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
127 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530128 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800129 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530130};
131
132struct msm_pcm_route_bdai_pp_params {
133 u16 port_id; /* AFE port ID */
134 unsigned long pp_params_config;
135 bool mute_on;
136 int latency;
137};
138
139static struct msm_pcm_route_bdai_pp_params
140 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
141 {HDMI_RX, 0, 0, 0},
142 {DISPLAY_PORT_RX, 0, 0, 0},
143};
144
145/*
146 * The be_dai_name_table is passed to HAL so that it can specify the
147 * BE ID for the BE it wants to enable based on the name. Thus there
148 * is a matching table and structure in HAL that need to be updated
149 * if any changes to these are made.
150 */
151struct msm_pcm_route_bdai_name {
152 unsigned int be_id;
153 char be_name[LPASS_BE_NAME_MAX_LENGTH];
154};
155static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
156
157static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
158 int fe_id);
159
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700160static void msm_routing_load_topology(size_t data_size, void *data);
161static void msm_routing_unload_topology(uint32_t topology_id);
162
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530163static int msm_routing_get_bit_width(unsigned int format)
164{
165 int bit_width;
166
167 switch (format) {
168 case SNDRV_PCM_FORMAT_S32_LE:
169 bit_width = 32;
170 break;
171 case SNDRV_PCM_FORMAT_S24_LE:
172 case SNDRV_PCM_FORMAT_S24_3LE:
173 bit_width = 24;
174 break;
175 case SNDRV_PCM_FORMAT_S16_LE:
176 default:
177 bit_width = 16;
178 }
179 return bit_width;
180}
181
182static bool msm_is_resample_needed(int input_sr, int output_sr)
183{
184 bool rc = false;
185
186 if (input_sr != output_sr)
187 rc = true;
188
189 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
190 (rc ? "oh yes" : "not really"),
191 input_sr, output_sr);
192
193 return rc;
194}
195
196static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
197 int channels)
198{
199 int rc = 0;
200
201 switch (topology) {
202 case SRS_TRUMEDIA_TOPOLOGY_ID:
203 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
204 msm_dts_srs_tm_init(port_id, copp_idx);
205 break;
206 case DS2_ADM_COPP_TOPOLOGY_ID:
207 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
208 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
209 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
210 is_custom_stereo_on);
211 if (rc < 0)
212 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
213 __func__, topology, port_id,
214 is_custom_stereo_on, rc);
215 break;
216 case DOLBY_ADM_COPP_TOPOLOGY_ID:
217 if (is_ds2_on) {
218 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
219 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
220 is_custom_stereo_on);
221 if (rc < 0)
222 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
223 __func__, topology, port_id, rc);
224 } else {
225 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
226 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
227 is_custom_stereo_on);
228 if (rc < 0)
229 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
230 __func__, topology, port_id, rc);
231 }
232 break;
233 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
234 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
235 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
236 if (rc < 0)
237 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
238 __func__, topology, port_id, copp_idx, rc);
239 break;
240 default:
241 /* custom topology specific feature param handlers */
242 break;
243 }
244}
245
246static void msm_pcm_routing_deinit_pp(int port_id, int topology)
247{
248 switch (topology) {
249 case SRS_TRUMEDIA_TOPOLOGY_ID:
250 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
251 msm_dts_srs_tm_deinit(port_id);
252 break;
253 case DS2_ADM_COPP_TOPOLOGY_ID:
254 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
255 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
256 msm_ds2_dap_deinit(port_id);
257 break;
258 case DOLBY_ADM_COPP_TOPOLOGY_ID:
259 if (is_ds2_on) {
260 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
261 msm_ds2_dap_deinit(port_id);
262 } else {
263 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
264 msm_dolby_dap_deinit(port_id);
265 }
266 break;
267 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
268 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
269 msm_qti_pp_asphere_deinit(port_id);
270 break;
271 default:
272 /* custom topology specific feature deinit handlers */
273 break;
274 }
275}
276
277static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
278 int path_type, int perf_mode)
279{
280 int itr = 0, rc = 0;
281
282 if ((path_type == ADM_PATH_PLAYBACK) &&
283 (perf_mode == LEGACY_PCM_MODE) &&
284 is_custom_stereo_on) {
285 for (itr = 0; itr < payload.num_copps; itr++) {
286 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
287 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
288 continue;
289 }
290
291 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
292 payload.port_id[itr],
293 payload.copp_idx[itr],
294 payload.session_id,
295 Q14_GAIN_ZERO_POINT_FIVE,
296 Q14_GAIN_ZERO_POINT_FIVE,
297 Q14_GAIN_ZERO_POINT_FIVE,
298 Q14_GAIN_ZERO_POINT_FIVE);
299 if (rc < 0)
300 pr_err("%s: err setting custom stereo\n",
301 __func__);
302 }
303 }
304}
305
306#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
307struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530308 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
309 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
310 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
311 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
312 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
313 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
314 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
315 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
316 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
317 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530318 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530319 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530320 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530321 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530322 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530323 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530324 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530325 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530326 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530327 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530328 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530329 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530330 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530331 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530332 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530333 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
334 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
335 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
336 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
337 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
338 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
339 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
340 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
341 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
342 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
343 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
344 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
345 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
346 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
347 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
348 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
349 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
350 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
351 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
352 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
353 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
354 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
355 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530356 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530357 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530358 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530359 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530360 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530361 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530362 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530363 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530364 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530365 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530366 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530367 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530368 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530369 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530370 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530371 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530372 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530373 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530374 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530375 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530376 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530377 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200378 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530379 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530380 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530381 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530382 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530383 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530384 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530385 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530386 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530387 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530388 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530389 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530390 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530391 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530392 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530393 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530394 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530395 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530396 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530397 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530398 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530399 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530400 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530401 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530402 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530403 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530404 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530405 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530406 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530407 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530408 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530409 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530410 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530411 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530412 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530413 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530414 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530415 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530416 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530417 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530418 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530419 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530420 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530421 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530422 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530423 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530424 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530425 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530426 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530427 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530428 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530429 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530430 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530431 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530432 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530433 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530434 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530435 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530436 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530437 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530438 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530439 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530440 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530441 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530442 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530443 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530444 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530445 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530446 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530447 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530448 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530449 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530450 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530451 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530452 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530453 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530454 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530455 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530456 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530457 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530458 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530459 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530460 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530461 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530462 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530463 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530464 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530465 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530466 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530467 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530468 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530469 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530470 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530471 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530472 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530473 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530474 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530475 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530476 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530477 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530478 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530479 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530480 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530481 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530482 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530483 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530484 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530485 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530486 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530487 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530488 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530489 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530490 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530491 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530492 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530493 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530494 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530495 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530496 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530497 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530498 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530499 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530500 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530501 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530502 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530503 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530504 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530505 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530506 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530507 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530508 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530509 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530510 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530511 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530512 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530513 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530514 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530515 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530516 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530517 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530518 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530519 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530520 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530521 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530522 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530523 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530524 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530525 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530526 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530527 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530528 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530529 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530530 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530531 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530532 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530533 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530534 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530535 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530536 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530537 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530538 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530539 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530540 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530541 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530542 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530543 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530544 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530545 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530546 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530547 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530548 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530549 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530550 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530551 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530552 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530553 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530554 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530555 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700556 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530557 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530558 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530559 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530560 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530561 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530562 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530563 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530564 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530565 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530566 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530567 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530568 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530569 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530570 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530571 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530572 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530573 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530574 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530575 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530576 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530577 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530578 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530579 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530580 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530581 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530582 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530583 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530584 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530585 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530586 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530587 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530588 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530589 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530590 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530591 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530592 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530593 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530594 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530595 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530596 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200597 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
598 LPASS_BE_SEN_AUXPCM_RX},
599 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
600 LPASS_BE_SEN_AUXPCM_TX},
601 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
602 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530603 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530604 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530605 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530606 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530607 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530608 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530609 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530610 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530611 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530612 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530613 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530614 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530615 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530616 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800617 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
618 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530619 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530620 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530621 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530622 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530623 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530624 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530625 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530626 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530627 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530628 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530629 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530630 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530631 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530632 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530633 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530634 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530635 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530636 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530637 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530638 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530639 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530640 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530641 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530642 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530643 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530644 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530645 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530646 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530647 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200648 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530649 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200650 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530651 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200652 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530653 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
654 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530655 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530656};
657
658/* Track ASM playback & capture sessions of DAI
659 * Track LSM listen sessions
660 */
661static struct msm_pcm_routing_fdai_data
662 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
663 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530664 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
665 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530666 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530667 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
668 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530669 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530670 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
671 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530672 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530673 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
674 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530675 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530676 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
677 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530678 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530679 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
680 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530681 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530682 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
683 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530684 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530685 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
686 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530687 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530688 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
689 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530690 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530691 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
692 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530693 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530694 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
695 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530696 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530697 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
698 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530699 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530702 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530705 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530708 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530711 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530714 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530717 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530720 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700723 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530726 /* MULTIMEDIA26 */
727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
729 /* MULTIMEDIA27 */
730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530732 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530735 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530738 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530739 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
740 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530741 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530742 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
743 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530744 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530745 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
746 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530747 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530748 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
749 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530750 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530751 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
752 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530753 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530754 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
755 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530756 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530757 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
758 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530759 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530760 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
761 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530762 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530765 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530768 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530769 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
770 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530771 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530772 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
773 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530774 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530775 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
776 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530777 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530778 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
779 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530780 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530781 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
782 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530783 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530784 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
785 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530786 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530787 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
788 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530789 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530790 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
791 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530792};
793
794static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
795 [MSM_BACKEND_DAI_MAX];
796static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
797static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
798static struct msm_pcm_stream_app_type_cfg
799 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
800
801static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
802
Florian Pfister522073c2018-09-26 15:39:15 +0200803/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530804void msm_pcm_routing_get_bedai_info(int be_idx,
805 struct msm_pcm_routing_bdai_data *be_dai)
806{
807 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
808 memcpy(be_dai, &msm_bedais[be_idx],
809 sizeof(struct msm_pcm_routing_bdai_data));
810}
811
Florian Pfister522073c2018-09-26 15:39:15 +0200812/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530813void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
814 struct msm_pcm_routing_fdai_data *fe_dai)
815{
816 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
817 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
818 sizeof(struct msm_pcm_routing_fdai_data));
819}
820
821void msm_pcm_routing_acquire_lock(void)
822{
823 mutex_lock(&routing_lock);
824}
825
826void msm_pcm_routing_release_lock(void)
827{
828 mutex_unlock(&routing_lock);
829}
830
831static int msm_pcm_routing_get_app_type_idx(int app_type)
832{
833 int idx;
834
835 pr_debug("%s: app_type: %d\n", __func__, app_type);
836 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
837 if (app_type_cfg[idx].app_type == app_type)
838 return idx;
839 }
840 pr_info("%s: App type not available, fallback to default\n", __func__);
841 return 0;
842}
843
844static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
845{
846 int idx;
847
848 pr_debug("%s: app_type: %d\n", __func__, app_type);
849 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
850 if (lsm_app_type_cfg[idx].app_type == app_type)
851 return idx;
852 }
853 pr_debug("%s: App type not available, fallback to default\n", __func__);
854 return 0;
855}
856
Surendar Karkae7507512018-07-20 15:46:54 +0530857static int get_port_id(int port_id)
858{
859 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
860}
861
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530862static bool is_mm_lsm_fe_id(int fe_id)
863{
864 bool rc = true;
865
866 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
867 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
868 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
869 rc = false;
870 }
871 return rc;
872}
873
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700874/*
875 * msm_pcm_routing_send_chmix_cfg:
876 * send the channel mixer command to mix the input channels
877 * into output channels.
878 *
879 * @fe_id: front end id
880 * @ip_channel_cnt: input channel count
881 * @op_channel_cnt: output channel count
882 * @ch_wght_coeff: channel weight co-efficients for channel mixing
883 * @session_type: indicates session is of type TX or RX
884 * @stream_type: indicates either Audio or Listen stream type
885 */
886int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
887 int op_channel_cnt, int *ch_wght_coeff,
888 int session_type, int stream_type)
889{
890
891 int rc = 0, idx = 0;
892 int be_index = 0, port_id;
893 unsigned int session_id = 0;
894
895 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
896 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
897 stream_type);
898 if (!is_mm_lsm_fe_id(fe_id)) {
899 /* bad ID assigned in machine driver */
900 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
901 return -EINVAL;
902 }
903
904 if (ch_wght_coeff == NULL) {
905 pr_err("%s: Null channel weightage coefficients passed\n",
906 __func__);
907 return -EINVAL;
908 }
909
910 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
911 port_id = msm_bedais[be_index].port_id;
912 if (!msm_bedais[be_index].active ||
913 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
914 continue;
915
916 session_id = fe_dai_map[fe_id][session_type].strm_id;
917
918 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
919 unsigned long copp =
920 session_copp_map[fe_id][session_type][be_index];
921 if (!test_bit(idx, &copp))
922 continue;
923 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
924 session_id, ip_channel_cnt,
925 op_channel_cnt, ch_wght_coeff,
926 session_type, stream_type);
927 if (rc < 0)
928 pr_err("%s: err setting channel mix config\n",
929 __func__);
930 }
931 }
932
933 return 0;
934}
935EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
936
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530937/**
938 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
939 * setting before use case start.
940 *
941 * @fe_id: frontend idx
942 * @type: stream direction type
943 * @params: parameters of channel mixer setting
944 *
945 * Return 0 for success
946 */
947int msm_pcm_routing_set_channel_mixer_cfg(
948 int fe_id, int type,
949 struct msm_pcm_channel_mixer *params)
950{
951 int i, j = 0;
952
953 channel_mixer_v2[fe_id][type].enable = params->enable;
954 channel_mixer_v2[fe_id][type].rule = params->rule;
955 channel_mixer_v2[fe_id][type].input_channel =
956 params->input_channel;
957 channel_mixer_v2[fe_id][type].output_channel =
958 params->output_channel;
959 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
960
961 for (i = 0; i < ADM_MAX_CHANNELS; i++)
962 channel_mixer_v2[fe_id][type].in_ch_map[i] =
963 params->in_ch_map[i];
964 for (i = 0; i < ADM_MAX_CHANNELS; i++)
965 channel_mixer_v2[fe_id][type].out_ch_map[i] =
966 params->out_ch_map[i];
967
968 for (i = 0; i < ADM_MAX_CHANNELS; i++)
969 for (j = 0; j < ADM_MAX_CHANNELS; j++)
970 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
971 params->channel_weight[i][j];
972
973 channel_mixer_v2[fe_id][type].override_in_ch_map =
974 params->override_in_ch_map;
975 channel_mixer_v2[fe_id][type].override_out_ch_map =
976 params->override_out_ch_map;
977
978 return 0;
979}
980EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
981
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530982int msm_pcm_routing_reg_stream_app_type_cfg(
983 int fedai_id, int session_type, int be_id,
984 struct msm_pcm_stream_app_type_cfg *cfg_data)
985{
986 int ret = 0;
987
988 if (cfg_data == NULL) {
989 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
990 ret = -EINVAL;
991 goto done;
992 }
993
994 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
995 __func__, fedai_id, session_type, be_id,
996 cfg_data->app_type, cfg_data->acdb_dev_id,
997 cfg_data->sample_rate);
998
999 if (!is_mm_lsm_fe_id(fedai_id)) {
1000 pr_err("%s: Invalid machine driver ID %d\n",
1001 __func__, fedai_id);
1002 ret = -EINVAL;
1003 goto done;
1004 }
1005 if (session_type != SESSION_TYPE_RX &&
1006 session_type != SESSION_TYPE_TX) {
1007 pr_err("%s: Invalid session type %d\n",
1008 __func__, session_type);
1009 ret = -EINVAL;
1010 goto done;
1011 }
1012 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1013 pr_err("%s: Received out of bounds be_id %d\n",
1014 __func__, be_id);
1015 ret = -EINVAL;
1016 goto done;
1017 }
1018
1019 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1020
1021 /*
1022 * Store the BE ID of the configuration information set as the latest so
1023 * the get mixer control knows what to return.
1024 */
1025 last_be_id_configured[fedai_id][session_type] = be_id;
1026
1027done:
1028 return ret;
1029}
1030EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1031
1032/**
1033 * msm_pcm_routing_get_stream_app_type_cfg
1034 *
1035 * Receives fedai_id, session_type, be_id, and populates app_type,
1036 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1037 * -EINVAL and does not alter passed values.
1038 *
1039 * fedai_id - Passed value, front end ID for which app type config is wanted
1040 * session_type - Passed value, session type for which app type config
1041 * is wanted
1042 * be_id - Returned value, back end device id the app type config data is for
1043 * cfg_data - Returned value, configuration data used by app type config
1044 */
1045int msm_pcm_routing_get_stream_app_type_cfg(
1046 int fedai_id, int session_type, int *bedai_id,
1047 struct msm_pcm_stream_app_type_cfg *cfg_data)
1048{
1049 int be_id;
1050 int ret = 0;
1051
1052 if (bedai_id == NULL) {
1053 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1054 ret = -EINVAL;
1055 goto done;
1056 } else if (cfg_data == NULL) {
1057 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1058 ret = -EINVAL;
1059 goto done;
1060 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1061 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1062 ret = -EINVAL;
1063 goto done;
1064 } else if (session_type != SESSION_TYPE_RX &&
1065 session_type != SESSION_TYPE_TX) {
1066 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1067 ret = -EINVAL;
1068 goto done;
1069 }
1070
1071 be_id = last_be_id_configured[fedai_id][session_type];
1072 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1073 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1074 ret = -EINVAL;
1075 goto done;
1076 }
1077
1078 *bedai_id = be_id;
1079 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1080 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1081 __func__, fedai_id, session_type, *bedai_id,
1082 cfg_data->app_type, cfg_data->acdb_dev_id,
1083 cfg_data->sample_rate);
1084done:
1085 return ret;
1086}
1087EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1088
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301089static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1090 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301091{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301092 struct list_head *ptr, *next;
1093 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301094 pr_debug("%s\n", __func__);
1095
1096 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301097 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301098
1099 cal_block = list_entry(ptr,
1100 struct cal_block_data, list);
1101
Vikram Panduranga770b8382017-09-27 12:17:36 -07001102 if (cal_utils_is_cal_stale(cal_block))
1103 continue;
1104
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301105 if (((struct audio_cal_info_adm_top *)cal_block
1106 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301107 return cal_block;
1108 }
1109 }
1110 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1111 return NULL;
1112}
1113
1114static struct cal_block_data *msm_routing_find_topology(int path,
1115 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301116 int acdb_id,
1117 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301118{
1119 struct list_head *ptr, *next;
1120 struct cal_block_data *cal_block = NULL;
1121 struct audio_cal_info_adm_top *cal_info;
1122
1123 pr_debug("%s\n", __func__);
1124
1125 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301126 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301127
1128 cal_block = list_entry(ptr,
1129 struct cal_block_data, list);
1130
Vikram Panduranga770b8382017-09-27 12:17:36 -07001131 if (cal_utils_is_cal_stale(cal_block))
1132 continue;
1133
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301134 cal_info = (struct audio_cal_info_adm_top *)
1135 cal_block->cal_info;
1136 if ((cal_info->path == path) &&
1137 (cal_info->app_type == app_type) &&
1138 (cal_info->acdb_id == acdb_id)) {
1139 return cal_block;
1140 }
1141 }
1142 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1143 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001144 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301145}
1146
Vikram Panduranga770b8382017-09-27 12:17:36 -07001147/*
1148 * Retrieving cal_block will mark cal_block as stale.
1149 * Hence it cannot be reused or resent unless the flag
1150 * is reset.
1151 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301152static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1153 int be_id)
1154{
1155 int topology = NULL_COPP_TOPOLOGY;
1156 struct cal_block_data *cal_block = NULL;
1157 int app_type = 0, acdb_dev_id = 0;
1158
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301159 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1160 __func__, fedai_id, session_type, be_id);
1161
1162 if (cal_data == NULL)
1163 goto done;
1164
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301165 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1166 acdb_dev_id =
1167 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1168
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301169 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301170 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301171 acdb_dev_id,
1172 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001173 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301174 topology = ((struct audio_cal_info_adm_top *)
1175 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001176 cal_utils_mark_cal_used(cal_block);
1177 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1178 } else {
1179 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301180
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301181 pr_debug("%s: Check for LSM topology\n", __func__);
1182 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1183 cal_block = msm_routing_find_topology(session_type, app_type,
1184 acdb_dev_id,
1185 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001186 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301187 topology = ((struct audio_cal_info_adm_top *)
1188 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001189 cal_utils_mark_cal_used(cal_block);
1190 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301191 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1192 }
1193
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301194done:
1195 pr_debug("%s: Using topology %d\n", __func__, topology);
1196 return topology;
1197}
1198
1199static uint8_t is_be_dai_extproc(int be_dai)
1200{
1201 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1202 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1203 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1204 return 1;
1205 else
1206 return 0;
1207}
1208
1209static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1210 int path_type, int perf_mode,
1211 uint32_t passthr_mode)
1212{
1213 int i, port_type, j, num_copps = 0;
1214 struct route_payload payload;
1215
1216 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1217 path_type == ADM_PATH_COMPRESSED_RX) ?
1218 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1219
1220 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1221 if (!is_be_dai_extproc(i) &&
1222 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1223 (msm_bedais[i].active) &&
1224 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301225 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301226 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1227 unsigned long copp =
1228 session_copp_map[fedai_id][sess_type][i];
1229 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301230 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301231 payload.copp_idx[num_copps] = j;
1232 payload.app_type[num_copps] =
1233 fe_dai_app_type_cfg
1234 [fedai_id][sess_type][i]
1235 .app_type;
1236 payload.acdb_dev_id[num_copps] =
1237 fe_dai_app_type_cfg
1238 [fedai_id][sess_type][i]
1239 .acdb_dev_id;
1240 payload.sample_rate[num_copps] =
1241 fe_dai_app_type_cfg
1242 [fedai_id][sess_type][i]
1243 .sample_rate;
1244 num_copps++;
1245 }
1246 }
1247 }
1248 }
1249
1250 if (num_copps) {
1251 payload.num_copps = num_copps;
1252 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1253 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1254 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1255 }
1256}
1257
1258void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1259 int stream_type)
1260{
1261 int i, session_type, path_type, port_type;
1262 u32 mode = 0;
1263
1264 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1265 /* bad ID assigned in machine driver */
1266 pr_err("%s: bad MM ID\n", __func__);
1267 return;
1268 }
1269
1270 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1271 session_type = SESSION_TYPE_RX;
1272 path_type = ADM_PATH_PLAYBACK;
1273 port_type = MSM_AFE_PORT_TYPE_RX;
1274 } else {
1275 session_type = SESSION_TYPE_TX;
1276 path_type = ADM_PATH_LIVE_REC;
1277 port_type = MSM_AFE_PORT_TYPE_TX;
1278 }
1279
1280 mutex_lock(&routing_lock);
1281
1282 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1283 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1284 if (!is_be_dai_extproc(i) &&
1285 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1286 (msm_bedais[i].active) &&
1287 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1288 mode = afe_get_port_type(msm_bedais[i].port_id);
1289 adm_connect_afe_port(mode, dspst_id,
1290 msm_bedais[i].port_id);
1291 break;
1292 }
1293 }
1294 mutex_unlock(&routing_lock);
1295}
1296
1297static bool route_check_fe_id_adm_support(int fe_id)
1298{
1299 bool rc = true;
1300
1301 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1302 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1303 /* fe id is listen while port is set to afe */
1304 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1305 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1306 __func__, fe_id, lsm_port_index);
1307 rc = false;
1308 }
1309 }
1310
1311 return rc;
1312}
1313
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001314/*
1315 * msm_pcm_routing_get_pp_ch_cnt:
1316 * Read the processed channel count
1317 *
1318 * @fe_id: Front end ID
1319 * @session_type: Inidicates RX or TX session type
1320 */
1321int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1322{
1323 struct msm_pcm_stream_app_type_cfg cfg_data;
1324 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301325 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001326
1327 memset(&cfg_data, 0, sizeof(cfg_data));
1328
1329 if (!is_mm_lsm_fe_id(fe_id)) {
1330 pr_err("%s: bad MM ID\n", __func__);
1331 return -EINVAL;
1332 }
1333
1334 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1335 &be_id, &cfg_data);
1336 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301337 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001338 return ret;
1339 }
1340
1341 app_type = cfg_data.app_type;
1342 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1343 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1344}
1345EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1346
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301347int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1348 int dspst_id, int stream_type,
1349 uint32_t passthr_mode)
1350{
1351 int i, j, session_type, path_type, port_type, topology;
1352 int num_copps = 0;
1353 struct route_payload payload;
1354 u32 channels, sample_rate;
1355 u16 bit_width = 16;
1356 bool is_lsm;
1357
1358 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1359 __func__, fe_id, perf_mode, dspst_id,
1360 stream_type, passthr_mode);
1361 if (!is_mm_lsm_fe_id(fe_id)) {
1362 /* bad ID assigned in machine driver */
1363 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1364 return -EINVAL;
1365 }
1366
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301367 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1368 session_type = SESSION_TYPE_RX;
1369 if (passthr_mode != LEGACY_PCM)
1370 path_type = ADM_PATH_COMPRESSED_RX;
1371 else
1372 path_type = ADM_PATH_PLAYBACK;
1373 port_type = MSM_AFE_PORT_TYPE_RX;
1374 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1375 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301376 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301377 path_type = ADM_PATH_COMPRESSED_TX;
1378 else
1379 path_type = ADM_PATH_LIVE_REC;
1380 port_type = MSM_AFE_PORT_TYPE_TX;
1381 } else {
1382 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1383 return -EINVAL;
1384 }
1385
1386 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1387 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1388 mutex_lock(&routing_lock);
1389
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301390 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301391 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1392 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1393 if (!route_check_fe_id_adm_support(fe_id)) {
1394 /* ignore adm open if not supported for fe_id */
1395 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1396 mutex_unlock(&routing_lock);
1397 return 0;
1398 }
1399
1400 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301401 /* re-enable EQ if active */
1402 msm_qti_pp_send_eq_values(fe_id);
1403 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301404 if (!is_be_dai_extproc(i) &&
1405 (afe_get_port_type(msm_bedais[i].port_id) ==
1406 port_type) &&
1407 (msm_bedais[i].active) &&
1408 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1409 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301410 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301411
1412 /*
1413 * check if ADM needs to be configured with different
1414 * channel mapping than backend
1415 */
1416 if (!msm_bedais[i].adm_override_ch)
1417 channels = msm_bedais[i].channel;
1418 else
1419 channels = msm_bedais[i].adm_override_ch;
1420
1421 bit_width = msm_routing_get_bit_width(
1422 msm_bedais[i].format);
1423 app_type =
1424 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1425 if (app_type && is_lsm) {
1426 app_type_idx =
1427 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1428 sample_rate =
1429 fe_dai_app_type_cfg[fe_id][session_type][i]
1430 .sample_rate;
1431 bit_width =
1432 lsm_app_type_cfg[app_type_idx].bit_width;
1433 } else if (app_type) {
1434 app_type_idx =
1435 msm_pcm_routing_get_app_type_idx(
1436 app_type);
1437 sample_rate =
1438 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1439 bit_width =
1440 app_type_cfg[app_type_idx].bit_width;
1441 } else {
1442 sample_rate = msm_bedais[i].sample_rate;
1443 }
1444 acdb_dev_id =
1445 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1446 topology = msm_routing_get_adm_topology(fe_id,
1447 session_type,
1448 i);
1449 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1450 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001451 COMPRESSED_PASSTHROUGH_GEN)
1452 || (passthr_mode ==
1453 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301454 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1455 pr_debug("%s: Before adm open topology %d\n", __func__,
1456 topology);
1457
1458 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301459 adm_open(port_id, path_type, sample_rate,
1460 channels, topology, perf_mode,
1461 bit_width, app_type, acdb_dev_id,
1462 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301463 if ((copp_idx < 0) ||
1464 (copp_idx >= MAX_COPPS_PER_PORT)) {
1465 pr_err("%s:adm open failed coppid:%d\n",
1466 __func__, copp_idx);
1467 mutex_unlock(&routing_lock);
1468 return -EINVAL;
1469 }
1470 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1471 __func__, fe_id, session_type, i);
1472 set_bit(copp_idx,
1473 &session_copp_map[fe_id][session_type][i]);
1474
1475 if (msm_is_resample_needed(
1476 sample_rate,
1477 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301478 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301479 msm_bedais[i].sample_rate);
1480
1481 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1482 unsigned long copp =
1483 session_copp_map[fe_id][session_type][i];
1484 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301485 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301486 payload.copp_idx[num_copps] = j;
1487 payload.app_type[num_copps] =
1488 fe_dai_app_type_cfg
1489 [fe_id][session_type][i]
1490 .app_type;
1491 payload.acdb_dev_id[num_copps] =
1492 fe_dai_app_type_cfg
1493 [fe_id][session_type][i]
1494 .acdb_dev_id;
1495 payload.sample_rate[num_copps] =
1496 fe_dai_app_type_cfg
1497 [fe_id][session_type][i]
1498 .sample_rate;
1499 num_copps++;
1500 }
1501 }
1502 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001503 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301504 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301505 msm_routing_send_device_pp_params(port_id,
1506 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301507 }
1508 }
1509 if (num_copps) {
1510 payload.num_copps = num_copps;
1511 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1512 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1513 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1514 }
1515 mutex_unlock(&routing_lock);
1516 return 0;
1517}
1518
1519static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1520{
1521 u32 session_id;
1522
1523 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301524 case MSM_FRONTEND_DAI_QCHAT:
1525 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1526 break;
1527 case MSM_FRONTEND_DAI_VOIP:
1528 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1529 break;
1530 case MSM_FRONTEND_DAI_VOICEMMODE1:
1531 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1532 break;
1533 case MSM_FRONTEND_DAI_VOICEMMODE2:
1534 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1535 break;
1536 default:
1537 session_id = 0;
1538 }
1539
1540 pr_debug("%s session_id 0x%x", __func__, session_id);
1541 return session_id;
1542}
1543
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301544static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1545 int dspst_id, int stream_type)
1546{
1547 int copp_idx = 0;
1548 int sess_type = 0;
1549 int j = 0, be_id = 0;
1550 int ret = 0;
1551
1552 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1553 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1554 return 0;
1555 }
1556
1557 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1558 sess_type = SESSION_TYPE_RX;
1559 else
1560 sess_type = SESSION_TYPE_TX;
1561
1562 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1563 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1564 __func__, fe_id, sess_type);
1565 return 0;
1566 }
1567
1568 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1569 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1570 channel_mixer_v2[fe_id][sess_type].input_channel;
1571
1572 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1573 __func__, sess_type, fe_id,
1574 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1575 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1576 msm_bedais[be_id].active);
1577
1578 if ((msm_bedais[be_id].active) &&
1579 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1580 unsigned long copp =
1581 session_copp_map[fe_id][sess_type][be_id];
1582 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1583 if (test_bit(j, &copp)) {
1584 copp_idx = j;
1585 break;
1586 }
1587 }
1588
1589 ret = adm_programable_channel_mixer(
1590 msm_bedais[be_id].port_id,
1591 copp_idx, dspst_id, sess_type,
1592 &channel_mixer_v2[fe_id][sess_type], 0);
1593 }
1594
1595 return ret;
1596}
1597
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301598static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1599 int dspst_id, int stream_type)
1600{
1601 int copp_idx = 0;
1602 int sess_type = 0;
1603 int i = 0, j = 0, be_id;
1604 int ret = 0;
1605
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301606 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1607 dspst_id, stream_type);
1608 if (ret) {
1609 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1610 fe_id);
1611 return ret;
1612 }
1613
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301614 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1615 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1616 return 0;
1617 }
1618
1619 if (!(channel_mixer[fe_id].enable)) {
1620 pr_debug("%s: channel mixer not enabled for FE %d\n",
1621 __func__, fe_id);
1622 return 0;
1623 }
1624
1625 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1626 sess_type = SESSION_TYPE_RX;
1627 else
1628 sess_type = SESSION_TYPE_TX;
1629
1630 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1631 ++i) {
1632 be_id = channel_input[fe_id][i] - 1;
1633 channel_mixer[fe_id].input_channels[i] =
1634 msm_bedais[be_id].channel;
1635
1636 if ((msm_bedais[be_id].active) &&
1637 test_bit(fe_id,
1638 &msm_bedais[be_id].fe_sessions[0])) {
1639 unsigned long copp =
1640 session_copp_map[fe_id][sess_type][be_id];
1641 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1642 if (test_bit(j, &copp)) {
1643 copp_idx = j;
1644 break;
1645 }
1646 }
1647
1648 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1649 __func__,
1650 fe_id, be_id, msm_bedais[be_id].channel,
1651 copp_idx);
1652 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001653 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301654 copp_idx, dspst_id, sess_type,
1655 channel_mixer + fe_id, i);
1656 }
1657 }
1658
1659 return ret;
1660}
1661
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301662/**
1663 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1664 * setting during runtime.
1665 *
1666 * @be_id: backend index
1667 * @session_id: session index
1668 * @session_type: session type
1669 * @params: parameters for channel mixer
1670 *
1671 * Retuen: 0 for success, else error
1672 */
1673int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1674 int session_type,
1675 struct msm_pcm_channel_mixer *params)
1676{
1677 int rc = 0;
1678 int port_id, copp_idx = 0;
1679
1680 be_id--;
1681 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1682 pr_err("%s: invalid backend id %d\n", __func__,
1683 be_id);
1684 return -EINVAL;
1685 }
1686
1687 port_id = msm_bedais[be_id].port_id;
1688 copp_idx = adm_get_default_copp_idx(port_id);
1689 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1690 __func__, port_id, copp_idx, session_id);
1691
1692 if ((params->input_channel < 0) ||
1693 (params->input_channel > ADM_MAX_CHANNELS)) {
1694 pr_err("%s: invalid input channel %d\n", __func__,
1695 params->input_channel);
1696 return -EINVAL;
1697 }
1698
1699 if ((params->output_channel < 0) ||
1700 (params->output_channel > ADM_MAX_CHANNELS)) {
1701 pr_err("%s: invalid output channel %d\n", __func__,
1702 params->output_channel);
1703 return -EINVAL;
1704 }
1705
1706 params->input_channels[0] = params->input_channel;
1707
1708 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1709 __func__, session_type,
1710 params->override_in_ch_map,
1711 params->override_out_ch_map,
1712 msm_bedais[be_id].active);
1713
1714 rc = adm_programable_channel_mixer(port_id,
1715 copp_idx,
1716 session_id,
1717 session_type,
1718 params,
1719 0);
1720 if (rc) {
1721 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1722 rc = -EINVAL;
1723 }
1724 return rc;
1725}
1726EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1727
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301728int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1729 int dspst_id, int stream_type)
1730{
1731 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1732 struct route_payload payload;
1733 u32 channels, sample_rate;
1734 uint16_t bits_per_sample = 16;
1735 uint32_t passthr_mode = LEGACY_PCM;
1736 int ret = 0;
1737
1738 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1739 /* bad ID assigned in machine driver */
1740 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1741 return -EINVAL;
1742 }
1743
1744 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1745 session_type = SESSION_TYPE_RX;
1746 path_type = ADM_PATH_PLAYBACK;
1747 port_type = MSM_AFE_PORT_TYPE_RX;
1748 } else {
1749 session_type = SESSION_TYPE_TX;
1750 path_type = ADM_PATH_LIVE_REC;
1751 port_type = MSM_AFE_PORT_TYPE_TX;
1752 }
1753
1754 mutex_lock(&routing_lock);
1755
1756 payload.num_copps = 0; /* only RX needs to use payload */
1757 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1758 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301759 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301760
1761 /* re-enable EQ if active */
1762 msm_qti_pp_send_eq_values(fedai_id);
1763 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1764 if (!is_be_dai_extproc(i) &&
1765 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1766 (msm_bedais[i].active) &&
1767 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1768 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301769 int port_id = get_port_id(msm_bedais[i].port_id);
1770
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301771 /*
1772 * check if ADM needs to be configured with different
1773 * channel mapping than backend
1774 */
1775 if (!msm_bedais[i].adm_override_ch)
1776 channels = msm_bedais[i].channel;
1777 else
1778 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301779
1780 bits_per_sample = msm_routing_get_bit_width(
1781 msm_bedais[i].format);
1782
1783 app_type =
1784 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1785 if (app_type) {
1786 app_type_idx =
1787 msm_pcm_routing_get_app_type_idx(app_type);
1788 sample_rate =
1789 fe_dai_app_type_cfg[fedai_id][session_type][i]
1790 .sample_rate;
1791 bits_per_sample =
1792 app_type_cfg[app_type_idx].bit_width;
1793 } else
1794 sample_rate = msm_bedais[i].sample_rate;
1795
1796 acdb_dev_id =
1797 fe_dai_app_type_cfg[fedai_id][session_type][i]
1798 .acdb_dev_id;
1799 topology = msm_routing_get_adm_topology(fedai_id,
1800 session_type,
1801 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301802 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301803 sample_rate, channels, topology,
1804 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301805 app_type, acdb_dev_id,
1806 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301807 if ((copp_idx < 0) ||
1808 (copp_idx >= MAX_COPPS_PER_PORT)) {
1809 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001810 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301811 mutex_unlock(&routing_lock);
1812 return -EINVAL;
1813 }
1814 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1815 __func__, fedai_id, session_type, i);
1816 set_bit(copp_idx,
1817 &session_copp_map[fedai_id][session_type][i]);
1818
1819 if (msm_is_resample_needed(
1820 sample_rate,
1821 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301822 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301823 msm_bedais[i].sample_rate);
1824
1825 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1826 unsigned long copp =
1827 session_copp_map[fedai_id][session_type][i];
1828 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301829 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301830 payload.copp_idx[num_copps] = j;
1831 payload.app_type[num_copps] =
1832 fe_dai_app_type_cfg
1833 [fedai_id][session_type]
1834 [i].app_type;
1835 payload.acdb_dev_id[num_copps] =
1836 fe_dai_app_type_cfg
1837 [fedai_id][session_type]
1838 [i].acdb_dev_id;
1839 payload.sample_rate[num_copps] =
1840 fe_dai_app_type_cfg
1841 [fedai_id][session_type]
1842 [i].sample_rate;
1843 num_copps++;
1844 }
1845 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301846 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301847 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1848 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301849 }
1850 }
1851 if (num_copps) {
1852 payload.num_copps = num_copps;
1853 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1854 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1855 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1856 }
1857
1858 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1859 dspst_id, stream_type);
1860 mutex_unlock(&routing_lock);
1861 return ret;
1862}
1863
1864int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1865 int dspst_id, int stream_type,
1866 struct msm_pcm_routing_evt event_info)
1867{
1868 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1869 stream_type)) {
1870 pr_err("%s: failed to reg phy stream\n", __func__);
1871 return -EINVAL;
1872 }
1873
1874 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1875 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1876 else
1877 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1878 return 0;
1879}
1880
1881void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1882{
Surendar Karkae7507512018-07-20 15:46:54 +05301883 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301884 struct msm_pcm_routing_fdai_data *fdai;
1885
1886 if (!is_mm_lsm_fe_id(fedai_id)) {
1887 /* bad ID assigned in machine driver */
1888 pr_err("%s: bad MM ID\n", __func__);
1889 return;
1890 }
1891
1892 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1893 port_type = MSM_AFE_PORT_TYPE_RX;
1894 session_type = SESSION_TYPE_RX;
1895 path_type = ADM_PATH_PLAYBACK;
1896 } else {
1897 port_type = MSM_AFE_PORT_TYPE_TX;
1898 session_type = SESSION_TYPE_TX;
1899 path_type = ADM_PATH_LIVE_REC;
1900 }
1901
1902 mutex_lock(&routing_lock);
1903 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1904 if (!is_be_dai_extproc(i) &&
1905 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1906 (msm_bedais[i].active) &&
1907 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1908 int idx;
1909 unsigned long copp =
1910 session_copp_map[fedai_id][session_type][i];
1911 fdai = &fe_dai_map[fedai_id][session_type];
1912
1913 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1914 if (test_bit(idx, &copp))
1915 break;
1916
1917 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1918 pr_debug("%s: copp idx is invalid, exiting\n",
1919 __func__);
1920 continue;
1921 }
Surendar Karkae7507512018-07-20 15:46:54 +05301922 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301923 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301924 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001925 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301926 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301927 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1928 __func__, copp, fedai_id, session_type, i);
1929 clear_bit(idx,
1930 &session_copp_map[fedai_id][session_type][i]);
1931 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1932 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1933 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301934 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301935 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301936 }
1937 }
1938
1939 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1940 fe_dai_map[fedai_id][session_type].be_srate = 0;
1941 mutex_unlock(&routing_lock);
1942}
1943
1944/* Check if FE/BE route is set */
1945static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1946{
1947 bool rc = false;
1948
1949 if (!is_mm_lsm_fe_id(fe_id)) {
1950 /* recheck FE ID in the mixer control defined in this file */
1951 pr_err("%s: bad MM ID\n", __func__);
1952 return rc;
1953 }
1954
1955 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1956 rc = true;
1957
1958 return rc;
1959}
1960
1961static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1962{
1963 int session_type, path_type, topology;
1964 u32 channels, sample_rate;
1965 uint16_t bits_per_sample = 16;
1966 struct msm_pcm_routing_fdai_data *fdai;
1967 uint32_t passthr_mode;
1968 bool is_lsm;
1969
1970 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1971
1972 if (!is_mm_lsm_fe_id(val)) {
1973 /* recheck FE ID in the mixer control defined in this file */
1974 pr_err("%s: bad MM ID\n", __func__);
1975 return;
1976 }
1977
1978 if (!route_check_fe_id_adm_support(val)) {
1979 /* ignore adm open if not supported for fe_id */
1980 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1981 return;
1982 }
1983
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301984 session_type =
1985 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1986 SESSION_TYPE_RX : SESSION_TYPE_TX;
1987 fdai = &fe_dai_map[val][session_type];
1988 passthr_mode = fdai->passthr_mode;
1989 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301990 if (passthr_mode != LEGACY_PCM)
1991 path_type = ADM_PATH_COMPRESSED_RX;
1992 else
1993 path_type = ADM_PATH_PLAYBACK;
1994 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001995 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301996 path_type = ADM_PATH_COMPRESSED_TX;
1997 else
1998 path_type = ADM_PATH_LIVE_REC;
1999 }
2000 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2001 (val <= MSM_FRONTEND_DAI_LSM8);
2002
2003 mutex_lock(&routing_lock);
2004 if (set) {
2005 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2006 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2007 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2008 voc_start_playback(set, msm_bedais[reg].port_id);
2009
2010 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302011 if (msm_bedais[reg].active && fdai->strm_id !=
2012 INVALID_SESSION) {
2013 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302014 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302015 /*
2016 * check if ADM needs to be configured with different
2017 * channel mapping than backend
2018 */
2019 if (!msm_bedais[reg].adm_override_ch)
2020 channels = msm_bedais[reg].channel;
2021 else
2022 channels = msm_bedais[reg].adm_override_ch;
2023 if (session_type == SESSION_TYPE_TX &&
2024 fdai->be_srate &&
2025 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2026 pr_debug("%s: flush strm %d diff BE rates\n",
2027 __func__, fdai->strm_id);
2028
2029 if (fdai->event_info.event_func)
2030 fdai->event_info.event_func(
2031 MSM_PCM_RT_EVT_BUF_RECFG,
2032 fdai->event_info.priv_data);
2033 fdai->be_srate = 0; /* might not need it */
2034 }
2035
2036 bits_per_sample = msm_routing_get_bit_width(
2037 msm_bedais[reg].format);
2038
2039 app_type =
2040 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2041 if (app_type && is_lsm) {
2042 app_type_idx =
2043 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2044 sample_rate =
2045 fe_dai_app_type_cfg[val][session_type][reg]
2046 .sample_rate;
2047 bits_per_sample =
2048 lsm_app_type_cfg[app_type_idx].bit_width;
2049 } else if (app_type) {
2050 app_type_idx =
2051 msm_pcm_routing_get_app_type_idx(app_type);
2052 sample_rate =
2053 fe_dai_app_type_cfg[val][session_type][reg]
2054 .sample_rate;
2055 bits_per_sample =
2056 app_type_cfg[app_type_idx].bit_width;
2057 } else
2058 sample_rate = msm_bedais[reg].sample_rate;
2059
2060 topology = msm_routing_get_adm_topology(val,
2061 session_type,
2062 reg);
2063 acdb_dev_id =
2064 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302065 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302066 sample_rate, channels, topology,
2067 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302068 app_type, acdb_dev_id,
2069 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302070 if ((copp_idx < 0) ||
2071 (copp_idx >= MAX_COPPS_PER_PORT)) {
2072 pr_err("%s: adm open failed\n", __func__);
2073 mutex_unlock(&routing_lock);
2074 return;
2075 }
2076 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2077 __func__, val, session_type, reg);
2078 set_bit(copp_idx,
2079 &session_copp_map[val][session_type][reg]);
2080
2081 if (msm_is_resample_needed(
2082 sample_rate,
2083 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302084 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302085 msm_bedais[reg].sample_rate);
2086
2087 if (session_type == SESSION_TYPE_RX &&
2088 fdai->event_info.event_func)
2089 fdai->event_info.event_func(
2090 MSM_PCM_RT_EVT_DEVSWITCH,
2091 fdai->event_info.priv_data);
2092
2093 msm_pcm_routing_build_matrix(val, session_type,
2094 path_type,
2095 fdai->perf_mode,
2096 passthr_mode);
2097 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2098 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302099 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2100 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302101 }
2102 } else {
2103 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2104 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2105 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2106 voc_start_playback(set, msm_bedais[reg].port_id);
2107 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302108 if (msm_bedais[reg].active && fdai->strm_id !=
2109 INVALID_SESSION) {
2110 int idx;
2111 int port_id;
2112 unsigned long copp =
2113 session_copp_map[val][session_type][reg];
2114 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2115 if (test_bit(idx, &copp))
2116 break;
2117
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002118 if (idx >= MAX_COPPS_PER_PORT) {
2119 pr_debug("%s: copp idx is invalid, exiting\n",
2120 __func__);
2121 mutex_unlock(&routing_lock);
2122 return;
2123 }
Surendar Karkae7507512018-07-20 15:46:54 +05302124 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302125 topology = adm_get_topology_for_port_copp_idx(port_id,
2126 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002127 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302128 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302129 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2130 __func__, copp, val, session_type, reg,
2131 topology);
2132 clear_bit(idx,
2133 &session_copp_map[val][session_type][reg]);
2134 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2135 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2136 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2137 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302138 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302139 msm_pcm_routing_build_matrix(val, session_type,
2140 path_type,
2141 fdai->perf_mode,
2142 passthr_mode);
2143 }
2144 }
2145 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2146 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2147 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2148
2149 mutex_unlock(&routing_lock);
2150}
2151
2152static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2153 struct snd_ctl_elem_value *ucontrol)
2154{
2155 struct soc_mixer_control *mc =
2156 (struct soc_mixer_control *)kcontrol->private_value;
2157
Meng Wang05d5e9a2018-03-28 16:45:03 +08002158 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302159 ucontrol->value.integer.value[0] = 1;
2160 else
2161 ucontrol->value.integer.value[0] = 0;
2162
Meng Wang05d5e9a2018-03-28 16:45:03 +08002163 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302164 ucontrol->value.integer.value[0]);
2165
2166 return 0;
2167}
2168
2169static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2170 struct snd_ctl_elem_value *ucontrol)
2171{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302172 struct snd_soc_dapm_widget *widget =
2173 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302174 struct soc_mixer_control *mc =
2175 (struct soc_mixer_control *)kcontrol->private_value;
2176 struct snd_soc_dapm_update *update = NULL;
2177
2178 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002179 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2180 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302181 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2182 update);
2183 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002184 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2185 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302186 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2187 update);
2188 }
2189
2190 return 1;
2191}
2192
2193static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2194 struct snd_ctl_elem_value *ucontrol)
2195{
2196 struct soc_mixer_control *mc =
2197 (struct soc_mixer_control *)kcontrol->private_value;
2198
Meng Wang05d5e9a2018-03-28 16:45:03 +08002199 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302200 ucontrol->value.integer.value[0] = 1;
2201 else
2202 ucontrol->value.integer.value[0] = 0;
2203
Meng Wang05d5e9a2018-03-28 16:45:03 +08002204 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302205 ucontrol->value.integer.value[0]);
2206
2207 return 0;
2208}
2209
2210static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2211 struct snd_ctl_elem_value *ucontrol)
2212{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302213 struct snd_soc_dapm_widget *widget =
2214 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302215 struct soc_mixer_control *mc =
2216 (struct soc_mixer_control *)kcontrol->private_value;
2217 struct snd_soc_dapm_update *update = NULL;
2218
Meng Wang05d5e9a2018-03-28 16:45:03 +08002219 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302220 ucontrol->value.integer.value[0]);
2221
2222 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002223 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2224 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302225 snd_soc_dapm_mixer_update_power(widget->dapm,
2226 kcontrol, 1, update);
2227 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002228 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2229 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302230 snd_soc_dapm_mixer_update_power(widget->dapm,
2231 kcontrol, 0, update);
2232 }
2233
2234 return 1;
2235}
2236
2237static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2238{
2239 u32 session_id = 0;
2240 u16 path_type;
2241 struct media_format_info voc_be_media_format;
2242
2243 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2244
2245 session_id = msm_pcm_routing_get_voc_sessionid(val);
2246
2247 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2248 __func__, val, session_id);
2249
2250 mutex_lock(&routing_lock);
2251
2252 if (set)
2253 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2254 else
2255 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2256
2257 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2258 afe_get_port_type(msm_bedais[reg].port_id) ==
2259 MSM_AFE_PORT_TYPE_RX) {
2260 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2261 __func__, set, msm_bedais[reg].port_id);
2262 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2263 }
2264
2265 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2266 MSM_AFE_PORT_TYPE_RX)
2267 path_type = RX_PATH;
2268 else
2269 path_type = TX_PATH;
2270
2271 if (set) {
2272 if (msm_bedais[reg].active) {
2273 voc_set_route_flag(session_id, path_type, 1);
2274
2275 memset(&voc_be_media_format, 0,
2276 sizeof(struct media_format_info));
2277
2278 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2279 voc_be_media_format.num_channels =
2280 msm_bedais[reg].channel;
2281 voc_be_media_format.sample_rate =
2282 msm_bedais[reg].sample_rate;
2283 voc_be_media_format.bits_per_sample =
2284 msm_bedais[reg].format;
2285 /* Defaulting this to 1 for voice call usecases */
2286 voc_be_media_format.channel_mapping[0] = 1;
2287
2288 voc_set_device_config(session_id, path_type,
2289 &voc_be_media_format);
2290
2291 if (voc_get_route_flag(session_id, TX_PATH) &&
2292 voc_get_route_flag(session_id, RX_PATH))
2293 voc_enable_device(session_id);
2294 } else {
2295 pr_debug("%s BE is not active\n", __func__);
2296 }
2297 } else {
2298 voc_set_route_flag(session_id, path_type, 0);
2299 voc_disable_device(session_id);
2300 }
2301
2302 mutex_unlock(&routing_lock);
2303
2304}
2305
2306static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2307 struct snd_ctl_elem_value *ucontrol)
2308{
2309 struct soc_mixer_control *mc =
2310 (struct soc_mixer_control *)kcontrol->private_value;
2311
2312 mutex_lock(&routing_lock);
2313
Meng Wang05d5e9a2018-03-28 16:45:03 +08002314 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302315 ucontrol->value.integer.value[0] = 1;
2316 else
2317 ucontrol->value.integer.value[0] = 0;
2318
2319 mutex_unlock(&routing_lock);
2320
Meng Wang05d5e9a2018-03-28 16:45:03 +08002321 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302322 ucontrol->value.integer.value[0]);
2323
2324 return 0;
2325}
2326
2327static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2328 struct snd_ctl_elem_value *ucontrol)
2329{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302330 struct snd_soc_dapm_widget *widget =
2331 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302332 struct soc_mixer_control *mc =
2333 (struct soc_mixer_control *)kcontrol->private_value;
2334 struct snd_soc_dapm_update *update = NULL;
2335
2336 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002337 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302338 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2339 update);
2340 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002341 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302342 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2343 update);
2344 }
2345
2346 return 1;
2347}
2348
2349static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2350 struct snd_ctl_elem_value *ucontrol)
2351{
2352 struct soc_mixer_control *mc =
2353 (struct soc_mixer_control *)kcontrol->private_value;
2354
2355 mutex_lock(&routing_lock);
2356
Meng Wang05d5e9a2018-03-28 16:45:03 +08002357 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302358 ucontrol->value.integer.value[0] = 1;
2359 else
2360 ucontrol->value.integer.value[0] = 0;
2361
2362 mutex_unlock(&routing_lock);
2363
Meng Wang05d5e9a2018-03-28 16:45:03 +08002364 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302365 ucontrol->value.integer.value[0]);
2366
2367 return 0;
2368}
2369
2370static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2371 struct snd_ctl_elem_value *ucontrol)
2372{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302373 struct snd_soc_dapm_widget *widget =
2374 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302375 struct soc_mixer_control *mc =
2376 (struct soc_mixer_control *)kcontrol->private_value;
2377 struct snd_soc_dapm_update *update = NULL;
2378
2379 if (ucontrol->value.integer.value[0]) {
2380 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002381 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302382 mutex_unlock(&routing_lock);
2383
2384 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2385 update);
2386 } else {
2387 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002388 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302389 mutex_unlock(&routing_lock);
2390
2391 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2392 update);
2393 }
2394
Meng Wang05d5e9a2018-03-28 16:45:03 +08002395 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302396 ucontrol->value.integer.value[0]);
2397
2398 return 1;
2399}
2400
2401/*
2402 * Return the mapping between port ID and backend ID to enable the AFE callback
2403 * to determine the acdb_dev_id from the port id
2404 */
2405int msm_pcm_get_be_id_from_port_id(int port_id)
2406{
2407 int i;
2408 int be_id = -EINVAL;
2409
2410 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2411 if (msm_bedais[i].port_id == port_id) {
2412 be_id = i;
2413 break;
2414 }
2415 }
2416
2417 return be_id;
2418}
2419
2420/*
2421 * Return the registered dev_acdb_id given a port ID to enable identifying the
2422 * correct AFE calibration information by comparing the header information.
2423 */
2424static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2425{
2426 int acdb_id = -EINVAL;
2427 int i = 0;
2428 int session;
2429 int port_type = afe_get_port_type(port_id);
2430 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2431
2432 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2433 __func__, port_id, be_id, port_type);
2434
2435 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2436 session = SESSION_TYPE_TX;
2437 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2438 session = SESSION_TYPE_RX;
2439 } else {
2440 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2441 acdb_id = -EINVAL;
2442 goto exit;
2443 }
2444
2445 if (be_id < 0) {
2446 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2447 goto exit;
2448 }
2449
2450 mutex_lock(&routing_lock);
2451 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2452 MSM_FRONTEND_DAI_MAX);
2453 if (i < MSM_FRONTEND_DAI_MAX)
2454 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2455
2456 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2457 __func__, i, session, be_id, acdb_id);
2458 mutex_unlock(&routing_lock);
2459exit:
2460 return acdb_id;
2461}
2462
2463static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2464 struct snd_ctl_elem_value *ucontrol)
2465{
2466 ucontrol->value.integer.value[0] = fm_switch_enable;
2467 pr_debug("%s: FM Switch enable %ld\n", __func__,
2468 ucontrol->value.integer.value[0]);
2469 return 0;
2470}
2471
2472static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2473 struct snd_ctl_elem_value *ucontrol)
2474{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302475 struct snd_soc_dapm_widget *widget =
2476 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302477 struct snd_soc_dapm_update *update = NULL;
2478
2479 pr_debug("%s: FM Switch enable %ld\n", __func__,
2480 ucontrol->value.integer.value[0]);
2481 if (ucontrol->value.integer.value[0])
2482 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2483 update);
2484 else
2485 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2486 update);
2487 fm_switch_enable = ucontrol->value.integer.value[0];
2488 return 1;
2489}
2490
2491static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2492 struct snd_ctl_elem_value *ucontrol)
2493{
2494 ucontrol->value.integer.value[0] = hfp_switch_enable;
2495 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2496 ucontrol->value.integer.value[0]);
2497 return 0;
2498}
2499
2500static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2501 struct snd_ctl_elem_value *ucontrol)
2502{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302503 struct snd_soc_dapm_widget *widget =
2504 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302505 struct snd_soc_dapm_update *update = NULL;
2506
2507 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2508 ucontrol->value.integer.value[0]);
2509 if (ucontrol->value.integer.value[0])
2510 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2511 1, update);
2512 else
2513 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2514 0, update);
2515 hfp_switch_enable = ucontrol->value.integer.value[0];
2516 return 1;
2517}
2518
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002519static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2520 struct snd_ctl_elem_value *ucontrol)
2521{
2522 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2523 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2524 ucontrol->value.integer.value[0]);
2525 return 0;
2526}
2527
2528static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2529 struct snd_ctl_elem_value *ucontrol)
2530{
2531 struct snd_soc_dapm_widget *widget =
2532 snd_soc_dapm_kcontrol_widget(kcontrol);
2533 struct snd_soc_dapm_update *update = NULL;
2534
2535 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2536 ucontrol->value.integer.value[0]);
2537 a2dp_switch_enable = ucontrol->value.integer.value[0];
2538 if (a2dp_switch_enable)
2539 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2540 1, update);
2541 else
2542 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2543 0, update);
2544 return 1;
2545}
2546
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302547static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2548 struct snd_ctl_elem_value *ucontrol)
2549{
2550 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2551 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2552 ucontrol->value.integer.value[0]);
2553 return 0;
2554}
2555
2556static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2557 struct snd_ctl_elem_value *ucontrol)
2558{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302559 struct snd_soc_dapm_widget *widget =
2560 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302561 struct snd_soc_dapm_update *update = NULL;
2562
2563 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2564 ucontrol->value.integer.value[0]);
2565 if (ucontrol->value.integer.value[0])
2566 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2567 update);
2568 else
2569 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2570 update);
2571 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2572 return 1;
2573}
2574
2575static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2576 struct snd_ctl_elem_value *ucontrol)
2577{
2578 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2579 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2580 ucontrol->value.integer.value[0]);
2581 return 0;
2582}
2583
2584static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2585 struct snd_ctl_elem_value *ucontrol)
2586{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302587 struct snd_soc_dapm_widget *widget =
2588 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302589 struct snd_soc_dapm_update *update = NULL;
2590
2591 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2592 ucontrol->value.integer.value[0]);
2593 if (ucontrol->value.integer.value[0])
2594 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2595 update);
2596 else
2597 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2598 update);
2599 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2600 return 1;
2601}
2602
2603static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2604 struct snd_ctl_elem_value *ucontrol)
2605{
2606 ucontrol->value.integer.value[0] = usb_switch_enable;
2607 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2608 ucontrol->value.integer.value[0]);
2609 return 0;
2610}
2611
2612static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2613 struct snd_ctl_elem_value *ucontrol)
2614{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302615 struct snd_soc_dapm_widget *widget =
2616 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302617 struct snd_soc_dapm_update *update = NULL;
2618
2619 pr_debug("%s: USB Switch enable %ld\n", __func__,
2620 ucontrol->value.integer.value[0]);
2621 if (ucontrol->value.integer.value[0])
2622 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2623 1, update);
2624 else
2625 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2626 0, update);
2627 usb_switch_enable = ucontrol->value.integer.value[0];
2628 return 1;
2629}
2630
2631static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2632 struct snd_ctl_elem_value *ucontrol)
2633{
2634 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2635 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2636 ucontrol->value.integer.value[0]);
2637 return 0;
2638}
2639
2640static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2641 struct snd_ctl_elem_value *ucontrol)
2642{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302643 struct snd_soc_dapm_widget *widget =
2644 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302645 struct snd_soc_dapm_update *update = NULL;
2646
2647 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2648 ucontrol->value.integer.value[0]);
2649 if (ucontrol->value.integer.value[0])
2650 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2651 update);
2652 else
2653 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2654 update);
2655 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2656 return 1;
2657}
2658
2659static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2660 struct snd_ctl_elem_value *ucontrol)
2661{
2662 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2663 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2664 ucontrol->value.integer.value[0]);
2665 return 0;
2666}
2667
2668static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2669 struct snd_ctl_elem_value *ucontrol)
2670{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302671 struct snd_soc_dapm_widget *widget =
2672 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302673 struct snd_soc_dapm_update *update = NULL;
2674
2675 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2676 ucontrol->value.integer.value[0]);
2677 if (ucontrol->value.integer.value[0])
2678 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2679 update);
2680 else
2681 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2682 update);
2683 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2684 return 1;
2685}
2686
2687static int msm_routing_get_tert_mi2s_switch_mixer(
2688 struct snd_kcontrol *kcontrol,
2689 struct snd_ctl_elem_value *ucontrol)
2690{
2691 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2692 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2693 ucontrol->value.integer.value[0]);
2694 return 0;
2695}
2696
2697static int msm_routing_put_tert_mi2s_switch_mixer(
2698 struct snd_kcontrol *kcontrol,
2699 struct snd_ctl_elem_value *ucontrol)
2700{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302701 struct snd_soc_dapm_widget *widget =
2702 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302703 struct snd_soc_dapm_update *update = NULL;
2704
2705 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2706 ucontrol->value.integer.value[0]);
2707 if (ucontrol->value.integer.value[0])
2708 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2709 update);
2710 else
2711 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2712 update);
2713 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2714 return 1;
2715}
2716
2717static int msm_routing_get_quat_mi2s_switch_mixer(
2718 struct snd_kcontrol *kcontrol,
2719 struct snd_ctl_elem_value *ucontrol)
2720{
2721 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2722 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2723 ucontrol->value.integer.value[0]);
2724 return 0;
2725}
2726
2727static int msm_routing_put_quat_mi2s_switch_mixer(
2728 struct snd_kcontrol *kcontrol,
2729 struct snd_ctl_elem_value *ucontrol)
2730{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302731 struct snd_soc_dapm_widget *widget =
2732 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302733 struct snd_soc_dapm_update *update = NULL;
2734
2735 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2736 ucontrol->value.integer.value[0]);
2737 if (ucontrol->value.integer.value[0])
2738 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2739 update);
2740 else
2741 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2742 update);
2743 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2744 return 1;
2745}
2746
Rohit Kumara5077932017-09-10 22:05:05 +05302747static int msm_routing_get_quin_mi2s_switch_mixer(
2748 struct snd_kcontrol *kcontrol,
2749 struct snd_ctl_elem_value *ucontrol)
2750{
2751 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2752 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2753 ucontrol->value.integer.value[0]);
2754 return 0;
2755}
2756
2757static int msm_routing_put_quin_mi2s_switch_mixer(
2758 struct snd_kcontrol *kcontrol,
2759 struct snd_ctl_elem_value *ucontrol)
2760{
2761 struct snd_soc_dapm_widget *widget =
2762 snd_soc_dapm_kcontrol_widget(kcontrol);
2763 struct snd_soc_dapm_update *update = NULL;
2764
2765 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2766 ucontrol->value.integer.value[0]);
2767 if (ucontrol->value.integer.value[0])
2768 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2769 update);
2770 else
2771 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2772 update);
2773 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2774 return 1;
2775}
2776
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302777static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2778 struct snd_ctl_elem_value *ucontrol)
2779{
2780 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2781 pr_debug("%s: FM Switch enable %ld\n", __func__,
2782 ucontrol->value.integer.value[0]);
2783 return 0;
2784}
2785
2786static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2787 struct snd_ctl_elem_value *ucontrol)
2788{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302789 struct snd_soc_dapm_widget *widget =
2790 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302791 struct snd_soc_dapm_update *update = NULL;
2792
2793 pr_debug("%s: FM Switch enable %ld\n", __func__,
2794 ucontrol->value.integer.value[0]);
2795 if (ucontrol->value.integer.value[0])
2796 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2797 update);
2798 else
2799 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2800 update);
2801 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2802 return 1;
2803}
2804
2805static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2806 struct snd_ctl_elem_value *ucontrol)
2807{
2808 ucontrol->value.integer.value[0] = lsm_port_index;
2809 return 0;
2810}
2811
2812static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2813 struct snd_ctl_elem_value *ucontrol)
2814{
2815 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2816 int mux = ucontrol->value.enumerated.item[0];
2817 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2818
2819 if (mux >= e->items) {
2820 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2821 return -EINVAL;
2822 }
2823
2824 pr_debug("%s: LSM enable %ld\n", __func__,
2825 ucontrol->value.integer.value[0]);
2826 switch (ucontrol->value.integer.value[0]) {
2827 case 1:
2828 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2829 break;
2830 case 2:
2831 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2832 break;
2833 case 3:
2834 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2835 break;
2836 case 4:
2837 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2838 break;
2839 case 5:
2840 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2841 break;
2842 case 6:
2843 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2844 break;
2845 case 7:
2846 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2847 break;
2848 case 8:
2849 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2850 break;
2851 case 9:
2852 lsm_port = ADM_LSM_PORT_ID;
2853 break;
2854 case 10:
2855 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2856 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302857 case 11:
2858 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2859 break;
2860 case 12:
2861 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2862 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302863 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002864 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302865 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302866 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002867 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2868 break;
2869 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302870 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2871 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302872 default:
2873 pr_err("Default lsm port");
2874 break;
2875 }
2876 set_lsm_port(lsm_port);
2877 lsm_port_index = ucontrol->value.integer.value[0];
2878
2879 return 0;
2880}
2881
2882static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2883 struct snd_ctl_elem_value *ucontrol)
2884{
2885 int i;
2886 u16 port_id;
2887 enum afe_mad_type mad_type;
2888
2889 pr_debug("%s: enter\n", __func__);
2890 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2891 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2892 strlen(lsm_port_text[i])))
2893 break;
2894
2895 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002896 pr_warn("%s: Invalid id name %s\n", __func__,
2897 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302898 return -EINVAL;
2899 }
2900
2901 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2902
2903 /*Check for Tertiary/Quaternary/INT3 TX port*/
2904 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2905 strlen(lsm_port_text[7])))
2906 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2907
2908 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2909 strlen(lsm_port_text[8])))
2910 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2911
2912 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2913 strlen(lsm_port_text[10])))
2914 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2915
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302916 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2917 strlen(lsm_port_text[13])))
2918 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2919
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302920 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2921 strlen(lsm_port_text[14])))
2922 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2923
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302924 mad_type = afe_port_get_mad_type(port_id);
2925 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2926 mad_type);
2927 switch (mad_type) {
2928 case MAD_HW_NONE:
2929 ucontrol->value.integer.value[0] = MADNONE;
2930 break;
2931 case MAD_HW_AUDIO:
2932 ucontrol->value.integer.value[0] = MADAUDIO;
2933 break;
2934 case MAD_HW_BEACON:
2935 ucontrol->value.integer.value[0] = MADBEACON;
2936 break;
2937 case MAD_HW_ULTRASOUND:
2938 ucontrol->value.integer.value[0] = MADULTRASOUND;
2939 break;
2940 case MAD_SW_AUDIO:
2941 ucontrol->value.integer.value[0] = MADSWAUDIO;
2942 break;
2943 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002944 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302945 return -EINVAL;
2946 }
2947 return 0;
2948}
2949
2950static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2951 struct snd_ctl_elem_value *ucontrol)
2952{
2953 int i;
2954 u16 port_id;
2955 enum afe_mad_type mad_type;
2956
2957 pr_debug("%s: enter\n", __func__);
2958 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2959 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2960 strlen(lsm_port_text[i])))
2961 break;
2962
2963 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002964 pr_warn("%s: Invalid id name %s\n", __func__,
2965 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302966 return -EINVAL;
2967 }
2968
2969 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2970 switch (ucontrol->value.integer.value[0]) {
2971 case MADNONE:
2972 mad_type = MAD_HW_NONE;
2973 break;
2974 case MADAUDIO:
2975 mad_type = MAD_HW_AUDIO;
2976 break;
2977 case MADBEACON:
2978 mad_type = MAD_HW_BEACON;
2979 break;
2980 case MADULTRASOUND:
2981 mad_type = MAD_HW_ULTRASOUND;
2982 break;
2983 case MADSWAUDIO:
2984 mad_type = MAD_SW_AUDIO;
2985 break;
2986 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002987 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302988 return -EINVAL;
2989 }
2990
2991 /*Check for Tertiary/Quaternary/INT3 TX port*/
2992 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2993 strlen(lsm_port_text[7])))
2994 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2995
2996 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2997 strlen(lsm_port_text[8])))
2998 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2999
3000 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3001 strlen(lsm_port_text[10])))
3002 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3003
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303004 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3005 strlen(lsm_port_text[13])))
3006 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3007
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303008 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3009 strlen(lsm_port_text[14])))
3010 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3011
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303012 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3013 mad_type);
3014 return afe_port_set_mad_type(port_id, mad_type);
3015}
3016
3017static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3018
3019static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
3020 adm_override_chs_text);
3021
3022static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3023{
3024 int backend_id;
3025
3026 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3027 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
3028 } else {
3029 pr_err("%s: unsupported backend id: %s",
3030 __func__, kcontrol->id.name);
3031 return -EINVAL;
3032 }
3033
3034 return backend_id;
3035}
3036static int msm_routing_adm_channel_config_get(
3037 struct snd_kcontrol *kcontrol,
3038 struct snd_ctl_elem_value *ucontrol)
3039{
3040 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3041
3042 if (backend_id >= 0) {
3043 mutex_lock(&routing_lock);
3044 ucontrol->value.integer.value[0] =
3045 msm_bedais[backend_id].adm_override_ch;
3046 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3047 ucontrol->value.integer.value[0], backend_id);
3048 mutex_unlock(&routing_lock);
3049 }
3050
3051 return 0;
3052}
3053
3054static int msm_routing_adm_channel_config_put(
3055 struct snd_kcontrol *kcontrol,
3056 struct snd_ctl_elem_value *ucontrol)
3057{
3058 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3059
3060 if (backend_id >= 0) {
3061 mutex_lock(&routing_lock);
3062 msm_bedais[backend_id].adm_override_ch =
3063 ucontrol->value.integer.value[0];
3064 pr_debug("%s:updating BE :%d adm channels: %d\n",
3065 __func__, backend_id,
3066 msm_bedais[backend_id].adm_override_ch);
3067 mutex_unlock(&routing_lock);
3068 }
3069
3070 return 0;
3071}
3072
3073static const struct snd_kcontrol_new adm_channel_config_controls[] = {
3074 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
3075 msm_routing_adm_channel_config_get,
3076 msm_routing_adm_channel_config_put),
3077};
3078
3079static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3080 struct snd_ctl_elem_value *ucontrol)
3081{
3082
3083 mutex_lock(&routing_lock);
3084 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3085 mutex_unlock(&routing_lock);
3086 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3087 ucontrol->value.integer.value[0]);
3088 return 0;
3089};
3090
3091static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3092 struct snd_ctl_elem_value *ucontrol)
3093{
3094 struct aanc_data aanc_info;
3095
3096 mutex_lock(&routing_lock);
3097 memset(&aanc_info, 0x00, sizeof(aanc_info));
3098 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3099 ucontrol->value.integer.value[0]);
3100 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3101 if (ucontrol->value.integer.value[0] == 0) {
3102 aanc_info.aanc_active = false;
3103 aanc_info.aanc_tx_port = 0;
3104 aanc_info.aanc_rx_port = 0;
3105 } else {
3106 aanc_info.aanc_active = true;
3107 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3108 aanc_info.aanc_tx_port =
3109 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3110 }
3111 afe_set_aanc_info(&aanc_info);
3112 mutex_unlock(&routing_lock);
3113 return 0;
3114};
3115static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3116 struct snd_ctl_elem_value *ucontrol)
3117{
3118 int idx = 0, shift = 0;
3119 struct soc_mixer_control *mc =
3120 (struct soc_mixer_control *)kcontrol->private_value;
3121
Meng Wang05d5e9a2018-03-28 16:45:03 +08003122 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3123 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303124
3125 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3126 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3127 return -EINVAL;
3128 }
3129
3130 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003131 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303132 ucontrol->value.integer.value[0] = 1;
3133 else
3134 ucontrol->value.integer.value[0] = 0;
3135
Meng Wang05d5e9a2018-03-28 16:45:03 +08003136 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303137 ucontrol->value.integer.value[0]);
3138
3139 return 0;
3140}
3141
3142static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3143 struct snd_ctl_elem_value *ucontrol)
3144{
3145 int idx = 0, shift = 0;
3146 struct soc_mixer_control *mc =
3147 (struct soc_mixer_control *)kcontrol->private_value;
3148
Meng Wang05d5e9a2018-03-28 16:45:03 +08003149 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3150 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303151
3152 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3153 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3154 return -EINVAL;
3155 }
3156
Meng Wang05d5e9a2018-03-28 16:45:03 +08003157 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3158 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303159 ucontrol->value.integer.value[0], idx, shift);
3160
3161 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003162 afe_loopback(1, msm_bedais[mc->shift].port_id,
3163 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303164 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003165 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303166 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003167 afe_loopback(0, msm_bedais[mc->shift].port_id,
3168 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303169 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003170 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303171 }
3172
3173 return 1;
3174}
3175
3176static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3177 struct snd_ctl_elem_value *ucontrol)
3178{
3179 u16 fe_id = 0;
3180
3181 fe_id = ((struct soc_mixer_control *)
3182 kcontrol->private_value)->shift;
3183 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3184 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3185 return -EINVAL;
3186 }
3187
3188 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3189
3190 return 0;
3191}
3192
3193static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3194 struct snd_ctl_elem_value *ucontrol)
3195{
3196 u16 fe_id = 0;
3197
3198 fe_id = ((struct soc_mixer_control *)
3199 kcontrol->private_value)->shift;
3200 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3201 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3202 return -EINVAL;
3203 }
3204
3205 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3206
3207 return 1;
3208}
3209
3210static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3211 struct snd_ctl_elem_value *ucontrol)
3212{
3213 u16 fe_id = 0;
3214
3215 fe_id = ((struct soc_multi_mixer_control *)
3216 kcontrol->private_value)->shift;
3217 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3218 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3219 return -EINVAL;
3220 }
3221
3222 ucontrol->value.integer.value[0] =
3223 channel_mixer[fe_id].output_channel;
3224 return 0;
3225}
3226
3227static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3228 struct snd_ctl_elem_value *ucontrol)
3229{
3230 u16 fe_id = 0;
3231
3232 fe_id = ((struct soc_multi_mixer_control *)
3233 kcontrol->private_value)->shift;
3234 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3235 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3236 return -EINVAL;
3237 }
3238
3239 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3240 fe_id,
3241 (unsigned int)(ucontrol->value.integer.value[0]));
3242 channel_mixer[fe_id].output_channel =
3243 (unsigned int)(ucontrol->value.integer.value[0]);
3244
3245 return 1;
3246}
3247
3248static const char *const ch_mixer[] = {"Disable", "Enable"};
3249
3250/* If new backend is added, need update this array */
3251static const char *const be_name[] = {
3252"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3253"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3254"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3255"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3256"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3257"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3258"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3259"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3260"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3261"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3262"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3263"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003264"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303265"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3266"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3267"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3268"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3269"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3270"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3271"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3272"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3273"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3274"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3275"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3276"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3277"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3278"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3279"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3280"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3281"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303282"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3283"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3284"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3285"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003286"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3287"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3288"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3289"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3290"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3291"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3292"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3293"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 -08003294"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 +05303295"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3296"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3297"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3298"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3299"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003300"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303301};
3302
3303static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3304 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3305static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3306 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3307static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3308 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3309static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3310 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3311
3312static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3313 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3314static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3315 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3316static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3317 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3318static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3319 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3320static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3321 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3322static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3323 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3324static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3325 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3326static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3327 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3328
3329static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3330 unsigned int channels,
3331 unsigned int items, const char *const names[])
3332{
3333 if (uinfo->value.enumerated.item >= items)
3334 uinfo->value.enumerated.item = items - 1;
3335
3336 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3337 sizeof(uinfo->value.enumerated.name),
3338 "ALSA: too long item name '%s'\n",
3339 names[uinfo->value.enumerated.item]);
3340 strlcpy(uinfo->value.enumerated.name,
3341 names[uinfo->value.enumerated.item],
3342 sizeof(uinfo->value.enumerated.name));
3343 return 0;
3344}
3345
3346static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3347 struct snd_ctl_elem_info *uinfo)
3348{
3349 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3350
3351 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3352 uinfo->count = 1;
3353
3354 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3355 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3356
3357 return 0;
3358}
3359static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3360 struct snd_ctl_elem_value *ucontrol)
3361{
3362 u16 fe_id = 0;
3363
3364 fe_id = ((struct soc_enum *)
3365 kcontrol->private_value)->shift_l;
3366 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3367 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3368 return -EINVAL;
3369 }
3370
3371 pr_debug("%s: FE %d %s\n", __func__,
3372 fe_id,
3373 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3374 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3375 return 0;
3376}
3377
3378static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3379 struct snd_ctl_elem_value *ucontrol)
3380{
3381 u16 fe_id = 0;
3382
3383 fe_id = ((struct soc_enum *)
3384 kcontrol->private_value)->shift_l;
3385 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3386 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3387 return -EINVAL;
3388 }
3389
3390 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3391 pr_debug("%s: %s FE %d\n", __func__,
3392 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3393 fe_id);
3394 return 0;
3395}
3396
3397static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3398 struct snd_ctl_elem_info *uinfo)
3399{
3400 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3401
3402 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3403 uinfo->count = 1;
3404
3405 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3406 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3407
3408 return 0;
3409}
3410
3411static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3412 struct snd_ctl_elem_value *ucontrol)
3413{
3414 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3415 u16 fe_id = 0, in_ch = 0;
3416
3417 fe_id = e->shift_l;
3418 in_ch = e->shift_r;
3419 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3420 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3421 return -EINVAL;
3422 }
3423 if (in_ch >= ADM_MAX_CHANNELS) {
3424 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3425 return -EINVAL;
3426 }
3427
3428 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3429 return 1;
3430}
3431
3432static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3433 struct snd_ctl_elem_value *ucontrol)
3434{
3435 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3436 u16 fe_id = 0, in_ch = 0;
3437
3438 fe_id = e->shift_l;
3439 in_ch = e->shift_r;
3440 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3441 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3442 return -EINVAL;
3443 }
3444 if (in_ch >= ADM_MAX_CHANNELS) {
3445 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3446 return -EINVAL;
3447 }
3448
3449 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3450 return 1;
3451}
3452
3453
3454static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3455 struct snd_ctl_elem_info *uinfo)
3456{
3457 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3458 uinfo->count = ADM_MAX_CHANNELS;
3459 uinfo->value.integer.min = 0;
3460 uinfo->value.integer.max = WEIGHT_0_DB;
3461
3462 return 0;
3463}
3464
3465static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3466 struct snd_ctl_elem_value *ucontrol)
3467{
3468 u16 fe_id = 0, out_ch = 0;
3469 int i, weight;
3470
3471 fe_id = ((struct soc_multi_mixer_control *)
3472 kcontrol->private_value)->shift;
3473 out_ch = ((struct soc_multi_mixer_control *)
3474 kcontrol->private_value)->rshift;
3475 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3476 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3477 return -EINVAL;
3478 }
3479 if (out_ch >= ADM_MAX_CHANNELS) {
3480 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3481 return -EINVAL;
3482 }
3483
3484 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3485 __func__, fe_id,
3486 ucontrol->value.integer.value[0],
3487 ucontrol->value.integer.value[1],
3488 ucontrol->value.integer.value[2],
3489 ucontrol->value.integer.value[3],
3490 ucontrol->value.integer.value[4],
3491 ucontrol->value.integer.value[5],
3492 ucontrol->value.integer.value[6],
3493 ucontrol->value.integer.value[7]);
3494
3495 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3496 weight = ucontrol->value.integer.value[i];
3497 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3498 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3499 __func__, fe_id, out_ch, i,
3500 channel_mixer[fe_id].channel_weight[out_ch][i]);
3501 }
3502
3503 return 0;
3504}
3505
3506static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3507 struct snd_ctl_elem_value *ucontrol)
3508{
3509 u16 fe_id = 0, out_ch = 0;
3510 int i;
3511
3512 fe_id = ((struct soc_multi_mixer_control *)
3513 kcontrol->private_value)->shift;
3514 out_ch = ((struct soc_multi_mixer_control *)
3515 kcontrol->private_value)->rshift;
3516 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3517 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3518 return -EINVAL;
3519 }
3520 if (out_ch >= ADM_MAX_CHANNELS) {
3521 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3522 return -EINVAL;
3523 }
3524
3525 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3526 ucontrol->value.integer.value[i] =
3527 channel_mixer[fe_id].channel_weight[out_ch][i];
3528
3529 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3530 __func__, fe_id,
3531 ucontrol->value.integer.value[0],
3532 ucontrol->value.integer.value[1],
3533 ucontrol->value.integer.value[2],
3534 ucontrol->value.integer.value[3],
3535 ucontrol->value.integer.value[4],
3536 ucontrol->value.integer.value[5],
3537 ucontrol->value.integer.value[6],
3538 ucontrol->value.integer.value[7]);
3539
3540 return 0;
3541}
3542
3543static const struct snd_kcontrol_new channel_mixer_controls[] = {
3544 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3545 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3546 msm_pcm_get_channel_rule_index,
3547 msm_pcm_put_channel_rule_index),
3548 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3549 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3550 msm_pcm_get_channel_rule_index,
3551 msm_pcm_put_channel_rule_index),
3552 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3553 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3554 msm_pcm_get_channel_rule_index,
3555 msm_pcm_put_channel_rule_index),
3556 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3557 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3558 msm_pcm_get_channel_rule_index,
3559 msm_pcm_put_channel_rule_index),
3560 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3561 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3562 msm_pcm_get_channel_rule_index,
3563 msm_pcm_put_channel_rule_index),
3564 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3565 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3566 msm_pcm_get_channel_rule_index,
3567 msm_pcm_put_channel_rule_index),
3568
3569 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3570 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3571 msm_pcm_get_out_chs,
3572 msm_pcm_put_out_chs),
3573 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3574 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3575 msm_pcm_get_out_chs,
3576 msm_pcm_put_out_chs),
3577 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3578 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3579 msm_pcm_get_out_chs,
3580 msm_pcm_put_out_chs),
3581 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3582 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3583 msm_pcm_get_out_chs,
3584 msm_pcm_put_out_chs),
3585 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3586 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3587 msm_pcm_get_out_chs,
3588 msm_pcm_put_out_chs),
3589 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3590 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3591 msm_pcm_get_out_chs,
3592 msm_pcm_put_out_chs),
3593 {
3594 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3595 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3596 .name = "MultiMedia1 Channel Mixer",
3597 .info = msm_pcm_channel_mixer_info,
3598 .get = msm_pcm_channel_mixer_get,
3599 .put = msm_pcm_channel_mixer_put,
3600 .private_value = (unsigned long)&(mm1_channel_mux)
3601 },
3602 {
3603 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3604 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3605 .name = "MultiMedia2 Channel Mixer",
3606 .info = msm_pcm_channel_mixer_info,
3607 .get = msm_pcm_channel_mixer_get,
3608 .put = msm_pcm_channel_mixer_put,
3609 .private_value = (unsigned long)&(mm2_channel_mux)
3610 },
3611 {
3612 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3613 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3614 .name = "MultiMedia3 Channel Mixer",
3615 .info = msm_pcm_channel_mixer_info,
3616 .get = msm_pcm_channel_mixer_get,
3617 .put = msm_pcm_channel_mixer_put,
3618 .private_value = (unsigned long)&(mm3_channel_mux)
3619 },
3620 {
3621 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3622 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3623 .name = "MultiMedia4 Channel Mixer",
3624 .info = msm_pcm_channel_mixer_info,
3625 .get = msm_pcm_channel_mixer_get,
3626 .put = msm_pcm_channel_mixer_put,
3627 .private_value = (unsigned long)&(mm4_channel_mux)
3628 },
3629 {
3630 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3631 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3632 .name = "MultiMedia1 Output Channel1",
3633 .info = msm_pcm_channel_weight_info,
3634 .get = msm_pcm_channel_weight_get,
3635 .put = msm_pcm_channel_weight_put,
3636 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3637 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3638 },
3639 {
3640 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3641 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3642 .name = "MultiMedia1 Output Channel2",
3643 .info = msm_pcm_channel_weight_info,
3644 .get = msm_pcm_channel_weight_get,
3645 .put = msm_pcm_channel_weight_put,
3646 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3647 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3648 },
3649 {
3650 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3651 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3652 .name = "MultiMedia1 Output Channel3",
3653 .info = msm_pcm_channel_weight_info,
3654 .get = msm_pcm_channel_weight_get,
3655 .put = msm_pcm_channel_weight_put,
3656 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3657 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3658 },
3659 {
3660 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3661 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3662 .name = "MultiMedia1 Output Channel4",
3663 .info = msm_pcm_channel_weight_info,
3664 .get = msm_pcm_channel_weight_get,
3665 .put = msm_pcm_channel_weight_put,
3666 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3667 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3668 },
3669 {
3670 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3671 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3672 .name = "MultiMedia1 Output Channel5",
3673 .info = msm_pcm_channel_weight_info,
3674 .get = msm_pcm_channel_weight_get,
3675 .put = msm_pcm_channel_weight_put,
3676 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3677 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3678 },
3679 {
3680 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3681 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3682 .name = "MultiMedia1 Output Channel6",
3683 .info = msm_pcm_channel_weight_info,
3684 .get = msm_pcm_channel_weight_get,
3685 .put = msm_pcm_channel_weight_put,
3686 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3687 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3688 },
3689 {
3690 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3691 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3692 .name = "MultiMedia1 Output Channel7",
3693 .info = msm_pcm_channel_weight_info,
3694 .get = msm_pcm_channel_weight_get,
3695 .put = msm_pcm_channel_weight_put,
3696 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3697 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3698 },
3699 {
3700 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3701 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3702 .name = "MultiMedia1 Output Channel8",
3703 .info = msm_pcm_channel_weight_info,
3704 .get = msm_pcm_channel_weight_get,
3705 .put = msm_pcm_channel_weight_put,
3706 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3707 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3708 },
3709 {
3710 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3711 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3712 .name = "MultiMedia2 Output Channel1",
3713 .info = msm_pcm_channel_weight_info,
3714 .get = msm_pcm_channel_weight_get,
3715 .put = msm_pcm_channel_weight_put,
3716 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3717 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3718 },
3719 {
3720 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3721 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3722 .name = "MultiMedia2 Output Channel2",
3723 .info = msm_pcm_channel_weight_info,
3724 .get = msm_pcm_channel_weight_get,
3725 .put = msm_pcm_channel_weight_put,
3726 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3727 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3728 },
3729 {
3730 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3731 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3732 .name = "MultiMedia2 Output Channel3",
3733 .info = msm_pcm_channel_weight_info,
3734 .get = msm_pcm_channel_weight_get,
3735 .put = msm_pcm_channel_weight_put,
3736 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3737 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3738 },
3739 {
3740 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3741 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3742 .name = "MultiMedia3 Output Channel1",
3743 .info = msm_pcm_channel_weight_info,
3744 .get = msm_pcm_channel_weight_get,
3745 .put = msm_pcm_channel_weight_put,
3746 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3747 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3748 },
3749 {
3750 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3751 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3752 .name = "MultiMedia3 Output Channel2",
3753 .info = msm_pcm_channel_weight_info,
3754 .get = msm_pcm_channel_weight_get,
3755 .put = msm_pcm_channel_weight_put,
3756 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3757 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3758 },
3759 {
3760 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3761 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3762 .name = "MultiMedia1 Channel1",
3763 .info = msm_pcm_channel_input_be_info,
3764 .get = msm_pcm_channel_input_be_get,
3765 .put = msm_pcm_channel_input_be_put,
3766 .private_value = (unsigned long)&(mm1_ch1_enum)
3767 },
3768 {
3769 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3770 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3771 .name = "MultiMedia1 Channel2",
3772 .info = msm_pcm_channel_input_be_info,
3773 .get = msm_pcm_channel_input_be_get,
3774 .put = msm_pcm_channel_input_be_put,
3775 .private_value = (unsigned long)&(mm1_ch2_enum)
3776 },
3777 {
3778 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3779 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3780 .name = "MultiMedia1 Channel3",
3781 .info = msm_pcm_channel_input_be_info,
3782 .get = msm_pcm_channel_input_be_get,
3783 .put = msm_pcm_channel_input_be_put,
3784 .private_value = (unsigned long)&(mm1_ch3_enum)
3785 },
3786 {
3787 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3788 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3789 .name = "MultiMedia1 Channel4",
3790 .info = msm_pcm_channel_input_be_info,
3791 .get = msm_pcm_channel_input_be_get,
3792 .put = msm_pcm_channel_input_be_put,
3793 .private_value = (unsigned long)&(mm1_ch4_enum)
3794 },
3795 {
3796 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3797 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3798 .name = "MultiMedia1 Channel5",
3799 .info = msm_pcm_channel_input_be_info,
3800 .get = msm_pcm_channel_input_be_get,
3801 .put = msm_pcm_channel_input_be_put,
3802 .private_value = (unsigned long)&(mm1_ch5_enum)
3803 },
3804 {
3805 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3806 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3807 .name = "MultiMedia1 Channel6",
3808 .info = msm_pcm_channel_input_be_info,
3809 .get = msm_pcm_channel_input_be_get,
3810 .put = msm_pcm_channel_input_be_put,
3811 .private_value = (unsigned long)&(mm1_ch6_enum)
3812 },
3813 {
3814 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3815 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3816 .name = "MultiMedia1 Channel7",
3817 .info = msm_pcm_channel_input_be_info,
3818 .get = msm_pcm_channel_input_be_get,
3819 .put = msm_pcm_channel_input_be_put,
3820 .private_value = (unsigned long)&(mm1_ch7_enum)
3821 },
3822 {
3823 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3824 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3825 .name = "MultiMedia1 Channel8",
3826 .info = msm_pcm_channel_input_be_info,
3827 .get = msm_pcm_channel_input_be_get,
3828 .put = msm_pcm_channel_input_be_put,
3829 .private_value = (unsigned long)&(mm1_ch8_enum)
3830 },
3831};
3832static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3833 struct snd_ctl_elem_value *ucontrol)
3834{
3835 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3836 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3837 ucontrol->value.integer.value[0]);
3838 return 0;
3839}
3840
3841static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3842 struct snd_ctl_elem_value *ucontrol)
3843{
3844 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3845 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3846 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3847 return 0;
3848}
3849
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303850static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
3851 struct snd_ctl_elem_value *ucontrol)
3852{
3853 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
3854 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
3855 ucontrol->value.integer.value[0]);
3856 return 0;
3857}
3858
3859static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
3860 struct snd_ctl_elem_value *ucontrol)
3861{
3862 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
3863 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
3864 __func__, msm_ec_ref_ch_downmixed);
3865 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
3866 return 0;
3867}
3868
3869static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
3870 struct snd_ctl_elem_value *ucontrol)
3871{
3872 int i = 0, ret = 0;
3873 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
3874 int out_channel_idx = ((struct soc_multi_mixer_control *)
3875 kcontrol->private_value)->shift;
3876
3877 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
3878 weights[i] = ucontrol->value.integer.value[i];
3879
3880 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
3881 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
3882 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
3883 return ret;
3884}
3885
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303886static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303887 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
3888 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303889
3890static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3891 struct snd_ctl_elem_value *ucontrol)
3892{
3893 switch (msm_ec_ref_bit_format) {
3894 case SNDRV_PCM_FORMAT_S24_LE:
3895 ucontrol->value.integer.value[0] = 2;
3896 break;
3897 case SNDRV_PCM_FORMAT_S16_LE:
3898 ucontrol->value.integer.value[0] = 1;
3899 break;
3900 default:
3901 ucontrol->value.integer.value[0] = 0;
3902 break;
3903 }
3904 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3905 __func__, ucontrol->value.integer.value[0]);
3906 return 0;
3907}
3908
3909static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3910 struct snd_ctl_elem_value *ucontrol)
3911{
3912 u16 bit_width = 0;
3913
3914 switch (ucontrol->value.integer.value[0]) {
3915 case 2:
3916 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3917 break;
3918 case 1:
3919 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3920 break;
3921 default:
3922 msm_ec_ref_bit_format = 0;
3923 break;
3924 }
3925
3926 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3927 bit_width = 16;
3928 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3929 bit_width = 24;
3930
3931 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3932 __func__, msm_ec_ref_bit_format);
3933 adm_ec_ref_rx_bit_width(bit_width);
3934 return 0;
3935}
3936
3937static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3938
3939static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3940 struct snd_ctl_elem_value *ucontrol)
3941{
3942 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3943 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3944 __func__, ucontrol->value.integer.value[0]);
3945 return 0;
3946}
3947
3948static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3949 struct snd_ctl_elem_value *ucontrol)
3950{
3951 switch (ucontrol->value.integer.value[0]) {
3952 case 0:
3953 msm_ec_ref_sampling_rate = 0;
3954 break;
3955 case 1:
3956 msm_ec_ref_sampling_rate = 8000;
3957 break;
3958 case 2:
3959 msm_ec_ref_sampling_rate = 16000;
3960 break;
3961 case 3:
3962 msm_ec_ref_sampling_rate = 32000;
3963 break;
3964 case 4:
3965 msm_ec_ref_sampling_rate = 44100;
3966 break;
3967 case 5:
3968 msm_ec_ref_sampling_rate = 48000;
3969 break;
3970 case 6:
3971 msm_ec_ref_sampling_rate = 96000;
3972 break;
3973 case 7:
3974 msm_ec_ref_sampling_rate = 192000;
3975 break;
3976 case 8:
3977 msm_ec_ref_sampling_rate = 384000;
3978 break;
3979 default:
3980 msm_ec_ref_sampling_rate = 48000;
3981 break;
3982 }
3983 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3984 __func__, msm_ec_ref_sampling_rate);
3985 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3986 return 0;
3987}
3988
3989static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3990 "32000", "44100", "48000", "96000", "192000", "384000"};
3991
3992static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303993 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303994 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3995 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3996};
3997
3998static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3999 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
4000 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
4001 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
4002 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
4003 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
4004 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304005 SOC_ENUM_EXT("EC Reference Downmixed Channels", msm_route_ec_ref_params_enum[0],
4006 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
4007 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM, 0,
4008 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4009 NULL, msm_ec_ref_chmixer_weights_put),
4010 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM, 1,
4011 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4012 NULL, msm_ec_ref_chmixer_weights_put),
4013 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM, 2,
4014 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4015 NULL, msm_ec_ref_chmixer_weights_put),
4016 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM, 3,
4017 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4018 NULL, msm_ec_ref_chmixer_weights_put),
4019 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM, 4,
4020 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4021 NULL, msm_ec_ref_chmixer_weights_put),
4022 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM, 5,
4023 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4024 NULL, msm_ec_ref_chmixer_weights_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304025};
4026
4027static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
4028 struct snd_ctl_elem_value *ucontrol)
4029{
4030 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
4031 mutex_lock(&routing_lock);
4032 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
4033 mutex_unlock(&routing_lock);
4034 return 0;
4035}
4036
4037static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
4038 struct snd_ctl_elem_value *ucontrol)
4039{
4040 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05304041 struct snd_soc_dapm_widget *widget =
4042 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304043 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4044 struct snd_soc_dapm_update *update = NULL;
4045
4046
4047 mutex_lock(&routing_lock);
4048 switch (ucontrol->value.integer.value[0]) {
4049 case 0:
4050 msm_route_ec_ref_rx = 0;
4051 ec_ref_port_id = AFE_PORT_INVALID;
4052 break;
4053 case 1:
4054 msm_route_ec_ref_rx = 1;
4055 ec_ref_port_id = SLIMBUS_0_RX;
4056 break;
4057 case 2:
4058 msm_route_ec_ref_rx = 2;
4059 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
4060 break;
4061 case 3:
4062 msm_route_ec_ref_rx = 3;
4063 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4064 break;
4065 case 4:
4066 msm_route_ec_ref_rx = 4;
4067 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4068 break;
4069 case 5:
4070 msm_route_ec_ref_rx = 5;
4071 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4072 break;
4073 case 6:
4074 msm_route_ec_ref_rx = 6;
4075 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4076 break;
4077 case 7:
4078 msm_route_ec_ref_rx = 7;
4079 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
4080 break;
4081 case 9:
4082 msm_route_ec_ref_rx = 9;
4083 ec_ref_port_id = SLIMBUS_5_RX;
4084 break;
4085 case 10:
4086 msm_route_ec_ref_rx = 10;
4087 ec_ref_port_id = SLIMBUS_1_TX;
4088 break;
4089 case 11:
4090 msm_route_ec_ref_rx = 11;
4091 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
4092 break;
4093 case 12:
4094 msm_route_ec_ref_rx = 12;
4095 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
4096 break;
4097 case 13:
4098 msm_route_ec_ref_rx = 13;
4099 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
4100 break;
4101 case 14:
4102 msm_route_ec_ref_rx = 14;
4103 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
4104 break;
4105 case 15:
4106 msm_route_ec_ref_rx = 15;
4107 ec_ref_port_id = SLIMBUS_6_RX;
4108 break;
4109 case 16:
4110 msm_route_ec_ref_rx = 16;
4111 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
4112 break;
4113 case 17:
4114 msm_route_ec_ref_rx = 17;
4115 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
4116 break;
4117 case 18:
4118 msm_route_ec_ref_rx = 18;
4119 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
4120 break;
4121 case 19:
4122 msm_route_ec_ref_rx = 19;
4123 ec_ref_port_id = AFE_PORT_ID_USB_RX;
4124 break;
4125 case 20:
4126 msm_route_ec_ref_rx = 20;
4127 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
4128 break;
4129 case 21:
4130 msm_route_ec_ref_rx = 21;
4131 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
4132 break;
4133 case 22:
4134 msm_route_ec_ref_rx = 22;
4135 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
4136 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08004137 case 23:
4138 msm_route_ec_ref_rx = 23;
4139 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
4140 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304141 case 24:
4142 msm_route_ec_ref_rx = 24;
4143 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
4144 break;
4145 case 25:
4146 msm_route_ec_ref_rx = 25;
4147 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
4148 break;
4149 case 26:
4150 msm_route_ec_ref_rx = 26;
4151 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
4152 break;
4153 case 27:
4154 msm_route_ec_ref_rx = 27;
4155 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
4156 break;
4157 case 28:
4158 msm_route_ec_ref_rx = 28;
4159 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
4160 break;
Zhou Songb167db12018-07-02 17:14:00 +08004161 case 29:
4162 msm_route_ec_ref_rx = 29;
4163 ec_ref_port_id = SLIMBUS_7_RX;
4164 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304165 case 30:
4166 msm_route_ec_ref_rx = 30;
4167 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
4168 break;
4169 case 31:
4170 msm_route_ec_ref_rx = 31;
4171 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
4172 break;
4173 case 32:
4174 msm_route_ec_ref_rx = 32;
4175 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
4176 break;
4177 case 33:
4178 msm_route_ec_ref_rx = 33;
4179 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
4180 break;
4181 case 34:
4182 msm_route_ec_ref_rx = 34;
4183 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
4184 break;
Derek Chen2bb55772018-10-24 00:17:15 -07004185 case 35:
4186 msm_route_ec_ref_rx = 35;
4187 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
4188 break;
4189 case 36:
4190 msm_route_ec_ref_rx = 36;
4191 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4192 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304193 default:
4194 msm_route_ec_ref_rx = 0; /* NONE */
4195 pr_err("%s EC ref rx %ld not valid\n",
4196 __func__, ucontrol->value.integer.value[0]);
4197 ec_ref_port_id = AFE_PORT_INVALID;
4198 break;
4199 }
Surendar Karkae7507512018-07-20 15:46:54 +05304200 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304201 adm_ec_ref_rx_id(ec_ref_port_id);
4202 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
4203 __func__, msm_route_ec_ref_rx);
4204 mutex_unlock(&routing_lock);
4205 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
4206 msm_route_ec_ref_rx, e, update);
4207 return 0;
4208}
4209
4210static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
4211 "PRI_MI2S_TX", "SEC_MI2S_TX",
4212 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
4213 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
4214 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
4215 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304216 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
4217 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08004218 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304219 "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 -07004220 "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 +05304221};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304222
4223static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
4224 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
4225};
4226
4227static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
4228 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
4229 msm_route_ec_ref_rx_enum[0],
4230 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4231
4232static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
4233 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
4234 msm_route_ec_ref_rx_enum[0],
4235 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4236
4237static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
4238 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
4239 msm_route_ec_ref_rx_enum[0],
4240 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4241
4242static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4243 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4244 msm_route_ec_ref_rx_enum[0],
4245 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4246
4247static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4248 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4249 msm_route_ec_ref_rx_enum[0],
4250 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4251
4252static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4253 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4254 msm_route_ec_ref_rx_enum[0],
4255 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4256
4257static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4258 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4259 msm_route_ec_ref_rx_enum[0],
4260 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4261
4262static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4263 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4264 msm_route_ec_ref_rx_enum[0],
4265 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4266
Asish Bhattacharya34504582017-08-08 12:55:01 +05304267static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4268 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4269 msm_route_ec_ref_rx_enum[0],
4270 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4271
Laxminath Kasam38070be2017-08-17 18:21:59 +05304272static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4273 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4274 msm_route_ec_ref_rx_enum[0],
4275 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4276
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304277static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4278 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4279 msm_route_ec_ref_rx_enum[0],
4280 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4281
4282static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4283 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4284 msm_route_ec_ref_rx_enum[0],
4285 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4286
4287static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4288 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4289 msm_route_ec_ref_rx_enum[0],
4290 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4291
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304292static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4293 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4294 msm_route_ec_ref_rx_enum[0],
4295 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4296
4297static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4298 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4299 msm_route_ec_ref_rx_enum[0],
4300 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4301
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304302static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4303 struct snd_ctl_elem_value *ucontrol)
4304{
4305 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4306
4307 mutex_lock(&routing_lock);
4308 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4309 mutex_unlock(&routing_lock);
4310 return 0;
4311}
4312
4313static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4314 struct snd_ctl_elem_value *ucontrol)
4315{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304316 struct snd_soc_dapm_widget *widget =
4317 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304318 int mux = ucontrol->value.enumerated.item[0];
4319 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4320 int ret = 1;
4321 bool state = true;
4322 uint16_t ext_ec_ref_port_id;
4323 struct snd_soc_dapm_update *update = NULL;
4324
4325 if (mux >= e->items) {
4326 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4327 return -EINVAL;
4328 }
4329
4330 mutex_lock(&routing_lock);
4331 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4332
4333 switch (msm_route_ext_ec_ref) {
4334 case EXT_EC_REF_PRI_MI2S_TX:
4335 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4336 break;
4337 case EXT_EC_REF_SEC_MI2S_TX:
4338 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4339 break;
4340 case EXT_EC_REF_TERT_MI2S_TX:
4341 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4342 break;
4343 case EXT_EC_REF_QUAT_MI2S_TX:
4344 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4345 break;
4346 case EXT_EC_REF_QUIN_MI2S_TX:
4347 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4348 break;
4349 case EXT_EC_REF_SLIM_1_TX:
4350 ext_ec_ref_port_id = SLIMBUS_1_TX;
4351 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004352 case EXT_EC_REF_SEC_TDM_TX:
4353 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4354 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304355 case EXT_EC_REF_NONE:
4356 default:
4357 ext_ec_ref_port_id = AFE_PORT_INVALID;
4358 state = false;
4359 break;
4360 }
4361
4362 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4363 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4364
4365 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4366 mutex_unlock(&routing_lock);
4367 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4368 update);
4369 } else {
4370 ret = -EINVAL;
4371 mutex_unlock(&routing_lock);
4372 }
4373 return ret;
4374}
4375
4376static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4377 "SEC_MI2S_TX", "TERT_MI2S_TX",
4378 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004379 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304380
4381static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4382 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4383};
4384
4385static const struct snd_kcontrol_new voc_ext_ec_mux =
4386 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4387 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4388
4389
4390static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004391 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4392 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304393 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004395 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4396 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304397 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004399 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4400 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304401 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004403 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4404 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304405 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004407 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4408 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304409 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004411 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4412 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304413 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004415 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4416 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304417 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004419 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4420 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304421 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004423 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4424 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304425 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004427 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4428 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304429 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004431 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4432 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304433 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004435 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4436 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304437 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004439 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4440 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304441 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004443 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4444 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304445 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004447 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4448 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304449 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004451 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4452 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304453 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004455 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4456 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304457 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004459 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4460 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304461 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004463 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4464 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304465 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4466 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304467 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4468 MSM_BACKEND_DAI_PRI_I2S_RX,
4469 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004471 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4472 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304473 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004475 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4476 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304477 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4478 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304479};
4480
4481static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004482 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4483 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304484 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004486 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4487 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304488 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004490 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4491 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304492 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004494 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4495 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304496 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004498 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4499 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304500 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004502 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4503 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304504 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004506 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4507 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304508 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004510 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4511 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304512 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004514 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4515 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304516 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004518 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4519 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304520 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004522 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4523 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304524 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004526 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4527 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304528 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004530 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4531 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304532 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004534 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4535 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304536 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004538 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4539 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304540 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004542 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4543 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304544 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004546 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4547 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304548 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004550 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4551 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304552 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004554 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4555 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304556 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4557 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304558 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4559 MSM_BACKEND_DAI_SEC_I2S_RX,
4560 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004562 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4563 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304564 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004566 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4567 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304568 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4569 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304570};
4571
Ralf Herzc8701f72018-06-20 11:37:35 +02004572static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004573 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004574 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304575 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004577 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004578 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304579 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004581 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004582 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304583 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004585 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004586 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304587 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004589 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004590 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304591 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004593 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004594 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304595 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004597 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004598 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304599 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004601 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004602 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304603 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004605 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004606 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304607 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004609 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004610 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304611 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004613 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004614 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304615 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004617 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004618 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304619 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004621 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004622 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304623 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004625 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004626 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304627 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004629 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004630 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304631 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004633 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004634 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304635 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004637 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004638 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304639 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004641 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004642 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304643 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004645 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004646 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304647 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4648 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304649 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4650 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4651 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004653 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004654 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304655 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004657 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004658 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4659 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4660 msm_routing_put_audio_mixer),
4661};
4662
4663static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4664 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4665 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4666 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4667 msm_routing_put_audio_mixer),
4668 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4669 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4670 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4671 msm_routing_put_audio_mixer),
4672 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4673 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4674 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4675 msm_routing_put_audio_mixer),
4676 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4677 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4678 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4679 msm_routing_put_audio_mixer),
4680 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4681 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4682 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4683 msm_routing_put_audio_mixer),
4684 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4685 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4686 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4687 msm_routing_put_audio_mixer),
4688 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4689 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4690 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4691 msm_routing_put_audio_mixer),
4692 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4693 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4694 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4695 msm_routing_put_audio_mixer),
4696 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4697 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4698 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4699 msm_routing_put_audio_mixer),
4700 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4701 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4702 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4703 msm_routing_put_audio_mixer),
4704 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4705 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4706 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4707 msm_routing_put_audio_mixer),
4708 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4709 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4710 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4711 msm_routing_put_audio_mixer),
4712 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4713 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4714 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4715 msm_routing_put_audio_mixer),
4716 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4717 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4718 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4719 msm_routing_put_audio_mixer),
4720 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4721 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4722 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4723 msm_routing_put_audio_mixer),
4724 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4725 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4726 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4727 msm_routing_put_audio_mixer),
4728 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4729 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4730 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4731 msm_routing_put_audio_mixer),
4732 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4733 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4734 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4735 msm_routing_put_audio_mixer),
4736 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4737 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4738 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4739 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304740 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4741 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4742 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4743 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004744 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4745 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4746 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4747 msm_routing_put_audio_mixer),
4748 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4749 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304750 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4751 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304752};
4753
4754static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004755 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4756 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304757 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004759 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4760 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304761 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004763 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4764 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304765 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004767 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4768 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304769 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004771 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4772 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304773 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004775 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4776 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304777 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004779 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4780 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304781 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004783 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4784 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304785 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004787 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4788 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304789 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004791 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4792 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304793 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004795 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4796 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304797 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004799 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4800 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304801 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004803 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4804 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304805 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004807 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4808 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304809 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004811 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4812 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304813 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004815 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4816 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304817 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4818 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304819 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4820 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4821 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4822 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304823};
4824
4825static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004826 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4827 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304828 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004830 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4831 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304832 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004834 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4835 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304836 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004838 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4839 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304840 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004842 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4843 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304844 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004846 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4847 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304848 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004850 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4851 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304852 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004854 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4855 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304856 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004858 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4859 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304860 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004862 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4863 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304864 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004866 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4867 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304868 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004870 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4871 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304872 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004874 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4875 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304876 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004878 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4879 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304880 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004882 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4883 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304884 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004886 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4887 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304888 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004890 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4891 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304892 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004894 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4895 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304896 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004898 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4899 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304900 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4901 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304902 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4903 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4904 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004906 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4907 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304908 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004910 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4911 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304912 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4913 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304914};
4915
4916static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004917 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4918 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304919 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004921 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4922 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304923 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004925 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4926 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304927 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004929 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4930 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304931 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004933 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4934 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304935 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004937 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4938 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304939 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004941 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4942 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304943 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004945 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4946 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304947 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004949 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4950 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304951 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004953 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4954 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304955 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004957 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4958 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304959 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004961 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4962 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304963 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004965 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4966 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304967 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004969 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4970 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304971 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004973 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4974 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304975 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004977 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4978 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304979 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004981 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4982 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304983 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004985 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4986 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304987 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004989 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4990 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304991 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4992 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304993 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4994 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4995 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004997 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4998 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304999 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005001 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5002 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305003 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5004 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305005};
5006
5007static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5009 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305010 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005012 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5013 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305014 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005016 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5017 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305018 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005020 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5021 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305022 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005024 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005028 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5029 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305030 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005032 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5033 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305034 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005036 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5037 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305038 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005040 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5041 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305042 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005044 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5045 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305046 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005048 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5049 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305050 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005052 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5053 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305054 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005056 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005060 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005064 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005068 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005072 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005076 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5077 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305078 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005080 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5081 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305082 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5083 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305084 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5085 MSM_BACKEND_DAI_MI2S_RX,
5086 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005088 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5089 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305090 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005092 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5093 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305094 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5095 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305096};
5097
5098static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005099 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005103 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5104 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305105 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005107 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5108 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305109 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005111 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5112 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305113 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005115 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5116 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305117 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005119 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5120 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305121 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005123 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5124 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305125 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005127 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5128 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305129 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005131 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5132 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305133 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005135 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5136 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305137 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005139 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5140 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305141 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005143 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5144 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305145 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005147 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5148 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305149 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005151 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5152 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305153 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005155 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5156 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305157 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005159 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5160 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305161 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005163 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5164 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305165 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005167 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5168 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305169 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005171 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5172 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305173 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5174 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305175 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5176 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
5177 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005179 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5180 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305181 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005183 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5184 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305185 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5186 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305187};
5188
5189static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005190 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5191 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305192 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005194 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5195 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305196 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005198 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5199 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305200 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005202 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5203 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305204 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005206 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5207 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305208 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005210 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5211 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305212 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005214 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5215 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305216 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005218 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5219 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305220 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005222 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5223 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305224 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005226 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5227 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305228 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005230 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5231 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305232 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005234 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5235 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305236 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005238 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5239 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305240 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005242 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5243 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305244 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005246 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5247 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305248 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005250 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5251 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305252 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005254 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5255 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305256 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005258 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5259 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305260 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005262 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5263 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305264 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5265 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305266 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5267 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5268 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005270 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5271 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305272 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005274 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5275 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305276 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5277 msm_routing_put_audio_mixer),
5278
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305279};
5280
5281static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005282 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5283 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305284 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005286 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5287 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305288 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005290 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5291 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305292 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005294 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5295 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305296 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005298 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5299 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305300 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005302 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5303 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305304 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005306 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5307 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305308 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005310 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5311 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305312 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005314 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5315 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305316 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005318 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5319 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305320 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005322 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5323 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305324 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005326 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5327 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305328 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005330 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5331 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305332 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005334 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5335 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305336 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005338 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5339 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305340 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005342 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5343 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305344 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005346 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5347 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305348 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5349 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305350 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5351 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5352 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005354 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5355 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305356 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005358 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5359 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305360 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5361 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305362};
5363
5364static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005365 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5366 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305367 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5368 msm_routing_put_audio_mixer),
5369};
5370
5371static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005372 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5373 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305374 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005376 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5377 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305378 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005380 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5381 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305382 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005384 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5385 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305386 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005388 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5389 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305390 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005392 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5393 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305394 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005396 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5397 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305398 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005400 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5401 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305402 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005404 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5405 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305406 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005408 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5409 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305410 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005412 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5413 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305414 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005416 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5417 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305418 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005420 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5421 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305422 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005424 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5425 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305426 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005428 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5429 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305430 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005432 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5433 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305434 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005436 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5437 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305438 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005440 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5441 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305442 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005444 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5445 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305446 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5447 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305448 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5449 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5450 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005452 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5453 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305454 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005456 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5457 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305458 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5459 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460};
5461
5462static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005463 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5464 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305465 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005467 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5468 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305469 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005471 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5472 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305473 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005475 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5476 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305477 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005479 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5480 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305481 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005483 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5484 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305485 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005487 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5488 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305489 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005491 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5492 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305493 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005495 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5496 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305497 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005499 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5500 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305501 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005503 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5504 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305505 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005507 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5508 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305509 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005511 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5512 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305513 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005515 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5516 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305517 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005519 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5520 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305521 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005523 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5524 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305525 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005527 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5528 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305529 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005531 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5532 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305533 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005535 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5536 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305537 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5538 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305539 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5540 MSM_BACKEND_DAI_PRI_MI2S_RX,
5541 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005543 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5544 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305545 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005547 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5548 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305549 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5550 msm_routing_put_audio_mixer),
5551
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305552};
5553
5554static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005555 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5556 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305557 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005559 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5560 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305561 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005563 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5564 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305565 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005567 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5568 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305569 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005571 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5572 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305573 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005575 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5576 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305577 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005579 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5580 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305581 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005583 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5584 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305585 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005587 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5588 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305589 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005591 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5592 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305593 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005595 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5596 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305597 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005599 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5600 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305601 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005603 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5604 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305605 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005607 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305609 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005611 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305613 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005615 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305617 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
5619};
5620
5621static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005622 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5623 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305624 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005626 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5627 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305628 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005630 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5631 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305632 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005634 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5635 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305636 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005638 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5639 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305640 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005642 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5643 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305644 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005646 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5647 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305648 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005650 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5651 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305652 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005654 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5655 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305656 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005658 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5659 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305660 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005662 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5663 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305664 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005666 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5667 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005670 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005674 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005678 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005682 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
5686};
5687
5688static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005689 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5690 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005693 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5694 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305695 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005697 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5698 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305699 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005701 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5702 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305703 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005705 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5706 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005709 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5710 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305711 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005713 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5714 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305715 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005717 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5718 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305719 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005721 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5722 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305723 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005725 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5726 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305727 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005729 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305731 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005733 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305735 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005741 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005745 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305765 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_HDMI_RX,
5767 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305777};
5778
5779static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005780 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5781 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305782 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005784 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5785 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305786 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005788 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5789 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305790 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005792 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5793 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305794 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005796 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5797 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305798 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005800 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5801 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305802 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005804 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305806 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005808 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305810 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005812 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305814 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005816 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305818 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005820 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305822 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005824 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305826 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005828 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305830 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005832 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305834 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005836 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305838 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005840 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305842 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305844 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5846 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305848};
5849
Karthikeyan Mani57550082018-05-03 18:43:58 -07005850static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5851 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5853 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
5855 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5857 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
5859 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5860 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5861 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5862 msm_routing_put_audio_mixer),
5863 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5864 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5865 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5866 msm_routing_put_audio_mixer),
5867 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5868 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5869 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5870 msm_routing_put_audio_mixer),
5871 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5872 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5873 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5874 msm_routing_put_audio_mixer),
5875 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5876 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5877 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5878 msm_routing_put_audio_mixer),
5879 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5881 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
5883 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5885 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
5887 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5889 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
5891 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5892 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5893 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5894 msm_routing_put_audio_mixer),
5895 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5897 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
5899 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5901 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
5903 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5905 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
5907 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5909 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
5911 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5913 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305915 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5917 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005919};
5920
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305921 /* incall music delivery mixer */
5922static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005923 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305925 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005927 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305929 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005931 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305933 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005935 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305937 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
5939};
5940
5941static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005942 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5943 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305944 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005946 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5947 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305948 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005950 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305952 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005954 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5955 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305956 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
5958};
5959
5960static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005961 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5962 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305963 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005965 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5966 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305967 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005969 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5970 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305971 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005973 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5974 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305975 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
5977};
5978
5979static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005980 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5981 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305982 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005984 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5985 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005988 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5989 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305990 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005992 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5993 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005996 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5997 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305998 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006000 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6001 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306002 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006004 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6005 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306006 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006008 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6009 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306010 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006012 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6013 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006016 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6017 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306018 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006020 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6021 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306022 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006024 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6025 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306026 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006028 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306030 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006032 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306034 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006036 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306038 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006040 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306044 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_SLIMBUS_6_RX,
6046 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306048};
6049
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306050static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
6051 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6052 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6053 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6054 msm_routing_put_audio_mixer),
6055 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6056 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6057 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6058 msm_routing_put_audio_mixer),
6059 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6060 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6061 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6062 msm_routing_put_audio_mixer),
6063 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6064 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6065 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6066 msm_routing_put_audio_mixer),
6067 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6068 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6069 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6070 msm_routing_put_audio_mixer),
6071 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6072 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6073 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6074 msm_routing_put_audio_mixer),
6075 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6076 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6077 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6078 msm_routing_put_audio_mixer),
6079 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6080 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6081 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6082 msm_routing_put_audio_mixer),
6083 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6084 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6085 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6086 msm_routing_put_audio_mixer),
6087 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6088 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6089 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6090 msm_routing_put_audio_mixer),
6091 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6092 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6093 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6094 msm_routing_put_audio_mixer),
6095 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6097 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
6099 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6101 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
6103 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6105 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
6107 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6109 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
6111 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6113 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306115 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6117 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306119};
6120
6121static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
6122 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6123 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6124 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6125 msm_routing_put_audio_mixer),
6126 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6127 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6128 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6129 msm_routing_put_audio_mixer),
6130 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6131 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6132 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6133 msm_routing_put_audio_mixer),
6134 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6135 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6136 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6137 msm_routing_put_audio_mixer),
6138 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6139 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6140 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6141 msm_routing_put_audio_mixer),
6142 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6143 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6144 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6145 msm_routing_put_audio_mixer),
6146 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6147 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6148 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6149 msm_routing_put_audio_mixer),
6150 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6151 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6152 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6153 msm_routing_put_audio_mixer),
6154 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6155 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6156 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6157 msm_routing_put_audio_mixer),
6158 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6159 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6160 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6161 msm_routing_put_audio_mixer),
6162 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6164 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
6166 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6168 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
6170 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6172 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
6174 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6176 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
6178 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6180 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
6182 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6184 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306186 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6188 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306190};
6191
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306192static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
6193 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6194 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6195 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6196 msm_routing_put_audio_mixer),
6197 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6198 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6199 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6200 msm_routing_put_audio_mixer),
6201 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6202 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6203 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6204 msm_routing_put_audio_mixer),
6205 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6206 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6207 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6208 msm_routing_put_audio_mixer),
6209 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6210 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6211 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6212 msm_routing_put_audio_mixer),
6213 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6214 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6215 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6216 msm_routing_put_audio_mixer),
6217 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6218 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6219 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6220 msm_routing_put_audio_mixer),
6221 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6222 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6223 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6224 msm_routing_put_audio_mixer),
6225 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6226 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6227 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6228 msm_routing_put_audio_mixer),
6229 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6231 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6232 msm_routing_put_audio_mixer),
6233 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6235 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6236 msm_routing_put_audio_mixer),
6237 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6239 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6240 msm_routing_put_audio_mixer),
6241 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6243 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
6245 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6247 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
6249 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6251 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
6253 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6255 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306257 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6259 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306261};
6262
6263static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6264 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6265 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6266 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6267 msm_routing_put_audio_mixer),
6268 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6270 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6271 msm_routing_put_audio_mixer),
6272 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6273 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6274 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6275 msm_routing_put_audio_mixer),
6276 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6277 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6278 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6279 msm_routing_put_audio_mixer),
6280 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6281 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6282 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6283 msm_routing_put_audio_mixer),
6284 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6286 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6287 msm_routing_put_audio_mixer),
6288 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6290 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6291 msm_routing_put_audio_mixer),
6292 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6294 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6295 msm_routing_put_audio_mixer),
6296 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6298 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6299 msm_routing_put_audio_mixer),
6300 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6302 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6303 msm_routing_put_audio_mixer),
6304 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6306 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6307 msm_routing_put_audio_mixer),
6308 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6310 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6311 msm_routing_put_audio_mixer),
6312 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6314 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6315 msm_routing_put_audio_mixer),
6316 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6318 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6319 msm_routing_put_audio_mixer),
6320 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6322 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6323 msm_routing_put_audio_mixer),
6324 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6326 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6327 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306328 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6330 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306332};
6333
6334static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6335 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6336 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6337 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6338 msm_routing_put_audio_mixer),
6339 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6340 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6341 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6342 msm_routing_put_audio_mixer),
6343 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6344 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6345 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6346 msm_routing_put_audio_mixer),
6347 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6349 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6350 msm_routing_put_audio_mixer),
6351 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6353 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6354 msm_routing_put_audio_mixer),
6355 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6357 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6358 msm_routing_put_audio_mixer),
6359 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6361 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6362 msm_routing_put_audio_mixer),
6363 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6365 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6366 msm_routing_put_audio_mixer),
6367 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6368 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6369 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6370 msm_routing_put_audio_mixer),
6371 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6373 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6374 msm_routing_put_audio_mixer),
6375 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6377 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
6379 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6381 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
6383 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6385 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
6387 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6389 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
6391 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6393 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
6395 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6397 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306399 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6401 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306403};
6404
6405static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6406 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6409 msm_routing_put_audio_mixer),
6410 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6413 msm_routing_put_audio_mixer),
6414 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6415 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6416 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6417 msm_routing_put_audio_mixer),
6418 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6419 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6421 msm_routing_put_audio_mixer),
6422 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6423 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6424 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6425 msm_routing_put_audio_mixer),
6426 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6427 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6429 msm_routing_put_audio_mixer),
6430 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6432 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
6434 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6436 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
6438 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
6442 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6443 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6445 msm_routing_put_audio_mixer),
6446 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6448 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
6450 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6452 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
6454 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6456 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
6458 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6460 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
6462 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6464 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
6466 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306470 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6472 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306474};
6475
6476static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6477 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6478 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6479 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6480 msm_routing_put_audio_mixer),
6481 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6482 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6483 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6484 msm_routing_put_audio_mixer),
6485 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6486 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6487 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6488 msm_routing_put_audio_mixer),
6489 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6490 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6491 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6492 msm_routing_put_audio_mixer),
6493 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6494 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6495 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6496 msm_routing_put_audio_mixer),
6497 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6498 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6499 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6500 msm_routing_put_audio_mixer),
6501 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6503 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
6505 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6507 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
6509 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6511 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
6513 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6515 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
6517 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6519 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
6521 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6523 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
6525 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6527 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
6529 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6531 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
6533 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6535 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
6537 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6539 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306541 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6543 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306545};
6546
6547static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6548 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6549 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6550 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6551 msm_routing_put_audio_mixer),
6552 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6553 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6554 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6555 msm_routing_put_audio_mixer),
6556 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6557 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6558 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6559 msm_routing_put_audio_mixer),
6560 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6561 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6562 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6563 msm_routing_put_audio_mixer),
6564 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6565 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6566 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6567 msm_routing_put_audio_mixer),
6568 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6569 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6570 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6571 msm_routing_put_audio_mixer),
6572 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6573 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6574 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6575 msm_routing_put_audio_mixer),
6576 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6577 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6578 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6579 msm_routing_put_audio_mixer),
6580 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6581 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6582 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6583 msm_routing_put_audio_mixer),
6584 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6585 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6586 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6587 msm_routing_put_audio_mixer),
6588 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6589 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6590 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6591 msm_routing_put_audio_mixer),
6592 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6593 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6594 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6595 msm_routing_put_audio_mixer),
6596 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6598 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
6600 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6602 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
6604 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6606 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
6608 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6610 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306612 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6614 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306616};
6617
6618static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6619 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6620 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6621 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6622 msm_routing_put_audio_mixer),
6623 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6624 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6625 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6626 msm_routing_put_audio_mixer),
6627 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6628 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6629 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6630 msm_routing_put_audio_mixer),
6631 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6632 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6633 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6634 msm_routing_put_audio_mixer),
6635 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6636 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6637 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6638 msm_routing_put_audio_mixer),
6639 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6640 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6641 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6642 msm_routing_put_audio_mixer),
6643 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6644 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6645 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6646 msm_routing_put_audio_mixer),
6647 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6648 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6649 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6650 msm_routing_put_audio_mixer),
6651 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6652 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6653 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6654 msm_routing_put_audio_mixer),
6655 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6656 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6657 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6658 msm_routing_put_audio_mixer),
6659 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6661 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
6663 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6665 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
6667 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6669 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
6671 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6673 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
6675 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6677 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
6679 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6681 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306683 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6685 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306687};
6688
6689static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6690 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6691 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6692 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6693 msm_routing_put_audio_mixer),
6694 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6695 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6696 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6697 msm_routing_put_audio_mixer),
6698 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6699 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6700 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6701 msm_routing_put_audio_mixer),
6702 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6703 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6704 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6705 msm_routing_put_audio_mixer),
6706 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6707 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6708 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6709 msm_routing_put_audio_mixer),
6710 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6711 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6712 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6713 msm_routing_put_audio_mixer),
6714 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6715 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6716 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6717 msm_routing_put_audio_mixer),
6718 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6719 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6720 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6721 msm_routing_put_audio_mixer),
6722 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6723 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6724 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6725 msm_routing_put_audio_mixer),
6726 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6727 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6728 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6729 msm_routing_put_audio_mixer),
6730 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6732 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
6734 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6736 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
6738 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6740 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
6742 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6744 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
6746 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6748 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
6750 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6752 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306754 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6756 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306758};
6759
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006761 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6762 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306763 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006765 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6766 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306767 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006769 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6770 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306771 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006773 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6774 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306775 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006777 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6778 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306779 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006781 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6782 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306783 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006785 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6786 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306787 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006789 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6790 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306791 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006793 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6794 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306795 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006797 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6798 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306799 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006801 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6802 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306803 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006805 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6806 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306807 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006809 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6810 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306811 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006813 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6814 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306815 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006817 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006821 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306825 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6827 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306829};
6830
Surendar Karka3ef3d812018-09-28 18:52:35 +05306831static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6832 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6833 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6834 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6835 msm_routing_put_audio_mixer),
6836 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6837 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6838 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6839 msm_routing_put_audio_mixer),
6840 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6841 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6842 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6843 msm_routing_put_audio_mixer),
6844 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6845 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6846 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6847 msm_routing_put_audio_mixer),
6848 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6849 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6850 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6851 msm_routing_put_audio_mixer),
6852 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6853 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6854 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6855 msm_routing_put_audio_mixer),
6856 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6857 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6858 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6859 msm_routing_put_audio_mixer),
6860 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6861 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6862 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6863 msm_routing_put_audio_mixer),
6864 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6865 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6866 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6867 msm_routing_put_audio_mixer),
6868 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6869 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6870 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6871 msm_routing_put_audio_mixer),
6872 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6873 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6874 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6875 msm_routing_put_audio_mixer),
6876 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6877 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6878 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6879 msm_routing_put_audio_mixer),
6880 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6881 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6882 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6883 msm_routing_put_audio_mixer),
6884 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6885 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6886 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6887 msm_routing_put_audio_mixer),
6888 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6890 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
6892 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6894 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
6896 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6898 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
6900};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306901static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006902 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6903 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306904 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006906 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6907 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306908 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006910 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6911 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006914 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6915 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306916 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006918 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6919 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306920 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006922 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6923 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306924 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006926 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6927 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306928 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006930 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6931 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306932 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006934 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6935 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306936 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006938 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6939 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306940 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006942 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6943 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306944 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006946 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6947 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306948 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006950 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6951 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306952 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006954 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6955 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306956 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006958 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6959 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306960 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006962 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6963 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306964 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6965 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306966 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6967 MSM_BACKEND_DAI_USB_RX,
6968 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6969 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306970};
6971
6972static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006973 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6974 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306975 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006977 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6978 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306979 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006981 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6982 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306983 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006985 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6986 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306987 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006989 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6990 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306991 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006993 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6994 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306995 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006997 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6998 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306999 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007001 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7002 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307003 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007005 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7006 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307007 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007009 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7010 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307011 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307015 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007017 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7018 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307019 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007021 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7022 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307023 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007025 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7026 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307027 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007029 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7030 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307031 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007033 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7034 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307035 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007037 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7038 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307039 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007041 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7042 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307043 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007045 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7046 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307047 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7048 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307049 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7050 MSM_BACKEND_DAI_INT_BT_SCO_RX,
7051 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007053 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7054 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307055 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007057 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7058 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307059 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7060 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307061};
7062
7063static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007064 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7065 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307066 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007068 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7069 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307070 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007072 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7073 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307074 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007076 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7077 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307078 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007084 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7085 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007088 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7089 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307090 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007092 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7093 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307094 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007096 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7097 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307098 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007100 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7101 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307102 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007104 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7105 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307106 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007120 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7121 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307122 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007124 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7125 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307126 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7127 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307128 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7129 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
7130 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7131 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307132};
7133
7134static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007135 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7136 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307137 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007139 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7140 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307141 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007143 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7144 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307145 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007147 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307149 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007151 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7152 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307153 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007155 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7156 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307157 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007159 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7160 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307161 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007163 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7164 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307165 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007167 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7168 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307169 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007171 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7172 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307173 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007175 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7176 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307177 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007179 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307181 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007183 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307185 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007187 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307189 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007191 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307193 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007195 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307197 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007199 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007203 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307205 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307211 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_INT_FM_RX,
7213 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007215 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007219 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307223};
7224
7225static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007226 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7227 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307228 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007230 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7231 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307232 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007234 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7235 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307236 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007238 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7239 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307240 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007242 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7243 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307244 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007246 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7247 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307248 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007250 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7251 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307252 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007254 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7255 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307256 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007258 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7259 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307260 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007262 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7263 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307264 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007266 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7267 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307268 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007270 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307272 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007274 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307276 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007278 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007282 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007286 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007290 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007294 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007298 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307302 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_AFE_PCM_RX,
7304 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007306 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307308 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007310 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307314};
7315
7316static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007317 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7318 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307319 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007321 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7322 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307323 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007325 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7326 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307327 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007329 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7330 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307331 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007333 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7334 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307335 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007337 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7338 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307339 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007341 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7342 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307343 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007345 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7346 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307347 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007349 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007353 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007357 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007393 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_AUXPCM_RX,
7395 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307397 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_AUXPCM_RX,
7399 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307409};
7410
7411static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007412 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7413 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307414 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007416 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7417 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007420 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307422 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007424 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307426 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007428 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007432 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307434 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007436 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307438 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007440 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307442 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007488 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7490 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307492 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7494 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307504};
7505
7506static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007507 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007515 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007519 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007523 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007527 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307529 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007531 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307533 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007535 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007539 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307541 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007543 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307545 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007555 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307557 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007559 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307561 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007563 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307565 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007567 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307569 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307571 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7573 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307575};
7576
7577static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007578 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007582 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007586 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007590 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307592 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007594 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307596 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007598 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007602 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007622 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307624 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007626 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7627 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307628 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007630 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7631 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307632 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007634 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307636 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007638 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307640 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307642 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7644 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307646};
7647
Rohit Kumara5077932017-09-10 22:05:05 +05307648static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007649 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007653 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007657 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007661 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007665 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307713 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7715 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307717};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007719 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7720 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307721 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007723 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7724 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307725 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007727 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7728 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307729 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007731 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7732 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307733 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007735 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7736 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307737 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007739 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7740 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307741 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007743 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7744 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307745 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007747 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7748 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307749 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007751 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7752 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307753 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007755 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7756 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307757 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007759 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7760 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307761 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007763 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307765 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007767 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307769 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007771 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007775 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007779 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007783 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7785 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307787};
7788
7789static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007790 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7791 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307792 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007794 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7795 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307796 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007798 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7799 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307800 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007802 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7803 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307804 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007806 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7807 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307808 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007810 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7811 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307812 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007814 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7815 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307816 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007818 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7819 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307820 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007822 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7823 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307824 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007826 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7827 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307828 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007830 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7831 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307832 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007834 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307836 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007838 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307840 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007842 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007846 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007850 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007854 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7856 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307858};
7859
7860static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007861 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7862 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307863 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007865 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7866 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307867 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007869 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7870 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307871 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007873 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7874 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307875 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007877 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7878 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307879 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007881 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7882 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307883 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007885 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7886 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307887 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007889 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7890 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307891 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007893 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7894 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307895 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007897 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7898 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307899 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007901 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7902 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307903 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007905 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307907 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007909 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007913 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007917 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007921 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007925 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7927 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307929};
7930
7931static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007932 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7933 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307934 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007936 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7937 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307938 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007940 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7941 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307942 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007944 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7945 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307946 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007948 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7949 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307950 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007952 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7953 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307954 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007956 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7957 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307958 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007960 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7961 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307962 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007964 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7965 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307966 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007968 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7969 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307970 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007972 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7973 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307974 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007976 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307978 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007980 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007984 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007988 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007992 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007996 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7998 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308000};
8001
8002static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008003 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8004 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308005 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008007 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8008 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308009 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008011 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8012 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308013 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008015 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8016 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308017 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008019 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8020 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308021 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008023 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8024 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308025 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008027 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8028 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308029 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008031 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8032 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308033 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008035 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8036 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308037 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008039 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8040 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308041 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008043 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8044 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308045 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008047 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308049 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008051 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008055 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008059 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008063 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
8067};
8068
8069static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008070 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8071 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308072 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008074 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8075 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308076 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008078 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8079 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308080 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008082 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8083 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308084 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008086 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8087 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308088 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008090 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8091 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308092 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008094 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8095 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308096 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008098 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8099 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308100 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008102 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8103 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308104 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008106 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8107 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308108 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008110 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8111 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308112 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008114 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8115 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308116 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008118 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308120 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008122 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308124 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008126 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308128 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008130 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308132 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008134 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_SEC_TDM_RX_0,
8136 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308138};
8139
8140static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008141 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8142 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008145 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8146 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308147 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008149 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8150 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308151 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008153 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8154 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308155 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008157 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8158 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008161 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8162 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308163 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008165 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8166 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308167 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008169 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8170 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308171 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008173 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8174 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308175 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008177 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8178 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308179 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008181 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8182 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308183 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008185 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8186 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308187 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008189 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308191 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008193 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308195 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008197 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308199 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008201 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308203 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008205 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_SEC_TDM_RX_1,
8207 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308209};
8210
8211static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008212 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8213 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308214 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008216 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8217 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308218 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008220 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8221 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308222 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008224 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8225 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308226 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008228 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8229 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308230 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008232 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8233 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308234 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008236 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8237 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308238 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008240 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8241 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308242 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008244 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8245 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308246 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008248 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8249 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308250 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008252 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8253 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308254 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008256 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308258 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008260 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008264 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008268 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008272 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308274 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008276 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8278 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308280};
8281
8282static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008283 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8284 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308285 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008287 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8288 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308289 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008291 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8292 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308293 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008295 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8296 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308297 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008299 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8300 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308301 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008303 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8304 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308305 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008307 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8308 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308309 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008311 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8312 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308313 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008315 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8316 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308317 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008319 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8320 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308321 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008323 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8324 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308325 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008327 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8328 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308329 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008331 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308333 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008335 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308337 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008339 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308341 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008343 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308345 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008347 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8349 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308351};
8352
8353static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008354 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8355 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308356 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008358 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8359 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308360 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008362 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8363 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308364 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008366 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8367 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308368 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008370 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8371 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308372 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008374 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8375 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308376 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008378 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8379 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308380 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008382 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8383 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308384 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008386 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8387 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308388 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008390 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8391 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308392 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008394 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8395 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308396 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008398 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308400 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008402 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308404 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
8418};
8419
8420static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008421 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8422 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308423 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008425 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8426 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308427 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008429 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8430 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308431 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008433 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8434 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308435 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008437 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8438 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308439 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008441 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8442 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308443 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008445 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8446 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308447 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008449 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8450 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308451 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008453 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8454 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008457 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8458 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308459 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008461 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8462 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308463 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008465 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008485 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8487 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308489};
8490
8491static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008492 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8493 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308494 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008496 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8497 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308498 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008500 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8501 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308502 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008504 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8505 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308506 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008508 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8509 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308510 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008512 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8513 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308514 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008516 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8517 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308518 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008520 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8521 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308522 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008524 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8525 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308526 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008528 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8529 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308530 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008532 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8533 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308534 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008536 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308538 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008540 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308542 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008544 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
8556};
8557
8558static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008559 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8560 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008563 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8564 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308565 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008567 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8568 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008571 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8572 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308573 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008575 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8576 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308577 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008579 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8580 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308581 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008583 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8584 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308585 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008587 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8588 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008591 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8592 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308593 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008595 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8596 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308597 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008599 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8600 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308601 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008603 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8604 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308605 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008607 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8608 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308609 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008611 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8612 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308613 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008615 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8616 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308617 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008619 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8620 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8622 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008623 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8625 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308627};
8628
8629static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008630 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308632 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008634 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8635 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308636 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008638 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8639 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308640 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008642 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8643 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308644 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008646 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8647 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308648 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008650 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8651 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308652 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008654 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8655 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308656 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008658 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8659 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308660 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008662 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8663 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308664 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008666 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8667 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308668 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008670 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8671 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008674 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8675 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308676 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008678 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8679 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308680 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008682 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8683 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308684 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008686 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8687 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308688 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008690 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8691 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308692 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8693 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008694 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8695 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8696 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8697 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308698};
8699
8700static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008701 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8702 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308703 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008705 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8706 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308707 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008709 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8710 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008713 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8714 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308715 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008717 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8718 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308719 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008721 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8722 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308723 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008725 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8726 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308727 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008729 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8730 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308731 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008733 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8734 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308735 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008737 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8738 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308739 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008741 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8742 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308743 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008745 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8746 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308747 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008749 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008753 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308755 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008757 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8758 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308759 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008761 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8762 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308763 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8764 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008765 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8766 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8767 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8768 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308769};
8770
8771static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008772 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8773 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308774 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008776 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8777 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308778 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008780 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8781 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308782 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008784 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8785 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308786 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008788 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8789 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308790 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008792 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8793 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308794 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008796 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8797 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308798 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008800 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8801 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308802 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008804 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8805 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308806 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008808 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8809 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308810 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008812 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8813 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008816 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308818 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008820 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8821 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308822 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008824 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308826 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008828 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8829 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308830 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008832 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8833 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308834 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8835 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008836 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8837 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8838 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8839 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308840};
8841
8842static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008843 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8844 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308845 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008847 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8848 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308849 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008851 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8852 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308853 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008855 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8856 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308857 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008859 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8860 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308861 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008863 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8864 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308865 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008867 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8868 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308869 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008871 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8872 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308873 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008875 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8876 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308877 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008879 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8880 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308881 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008883 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8884 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008891 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308893 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008895 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8896 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308897 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008899 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8900 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308901 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008903 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8904 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308905 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008907 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8908 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308909 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8910 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008911 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8912 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8913 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8914 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308915};
8916
8917static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008918 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8919 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308920 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008922 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8923 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308924 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008926 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8927 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308928 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008930 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8931 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308932 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008934 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8935 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308936 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008938 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8939 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308940 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008942 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8943 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308944 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008946 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8947 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308948 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008950 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8951 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308952 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008954 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8955 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308956 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008958 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8959 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308960 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008962 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8963 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008966 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8967 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308968 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008970 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8971 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308972 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008974 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308976 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
8982};
8983
8984static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008985 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8986 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308987 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008989 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8990 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308991 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008993 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8994 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308995 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008997 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8998 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308999 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009001 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9002 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309003 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009005 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9006 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309007 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009009 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9010 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309011 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009013 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9014 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309015 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009017 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9018 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309019 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009021 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9022 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309023 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009025 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9026 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309027 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009029 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9030 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309031 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009033 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9034 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309035 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009037 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009041 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009045 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009049 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009053 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
9055 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309057};
9058
9059static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009060 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9061 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309062 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009064 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9065 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309066 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009068 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9069 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309070 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009072 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9073 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309074 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009076 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9077 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309078 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009080 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9081 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309082 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009084 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9085 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309086 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009088 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9089 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309090 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009092 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9093 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309094 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009096 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9097 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309098 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009100 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9101 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309102 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009104 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9105 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309106 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009108 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9109 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309110 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009112 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9113 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309114 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009116 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9117 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309118 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009120 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309122 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009124 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309126 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009128 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
9130 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309132};
9133
9134static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009135 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9136 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309137 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009139 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9140 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309141 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009143 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9144 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309145 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009147 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9148 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309149 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009151 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9152 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309153 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009155 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9156 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309157 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009159 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9160 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309161 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009163 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9164 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309165 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009167 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9168 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309169 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009171 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9172 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309173 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009175 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9176 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309177 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009179 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9180 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309181 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009183 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9184 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309185 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009187 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9188 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309189 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009191 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9192 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309193 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009195 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9196 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309197 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009199 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9200 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309201 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9202 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009203 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9204 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
9205 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9206 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309207};
9208
Rohit Kumara5077932017-09-10 22:05:05 +05309209static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009210 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9211 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309212 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009214 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9215 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309216 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009218 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9219 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309220 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009222 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9223 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309224 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009226 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9227 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309228 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009230 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9231 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309232 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009234 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9235 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309236 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009238 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9239 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309240 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009242 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9243 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309244 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009246 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9247 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309248 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009250 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9251 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309252 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009254 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9255 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309256 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009258 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9259 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309260 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009262 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9263 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309264 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009266 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9267 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309268 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009270 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9271 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309272 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009274 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9275 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309276 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9277 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009278 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9279 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9280 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9281 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309282};
9283
9284static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009285 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9286 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309287 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009289 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9290 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309291 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009293 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9294 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309295 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009297 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9298 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309299 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009301 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9302 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309303 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009305 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9306 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309307 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009309 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9310 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309311 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009313 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9314 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309315 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009317 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9318 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309319 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009321 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9322 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309323 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009325 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9326 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309327 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009329 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9330 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309331 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009333 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9334 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309335 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009337 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9338 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309339 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009341 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9342 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309343 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009345 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9346 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309347 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9348 msm_routing_put_audio_mixer),
9349};
9350
9351static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009352 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9353 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309354 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009356 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9357 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309358 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009360 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9361 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309362 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009364 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9365 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309366 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009368 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9369 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309370 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009372 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9373 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309374 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009376 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9377 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309378 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009380 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9381 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309382 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009384 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9385 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309386 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009388 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9389 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309390 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009392 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9393 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309394 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009396 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9397 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309398 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009400 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9401 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309402 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009404 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309406 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009408 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309410 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009412 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309414 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009416 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9417 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309418 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9419 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009420 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9422 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309424};
9425
9426static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009427 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9428 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309429 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009431 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9432 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309433 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009435 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9436 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309437 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009439 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9440 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309441 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009443 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9444 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309445 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009447 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9448 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309449 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009451 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9452 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309453 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009455 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9456 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309457 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009459 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9460 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309461 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009463 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9464 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309465 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009467 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9468 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309469 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009471 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9472 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309473 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009475 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9476 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309477 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009479 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9480 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309481 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009483 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9484 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309485 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009487 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9488 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309489 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009495 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9497 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309499};
9500
9501static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009502 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9503 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309504 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009506 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9507 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309508 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009510 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9511 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309512 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009514 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9515 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309516 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009518 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9519 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309520 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009522 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9523 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309524 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009526 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9527 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309528 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009530 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9531 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309532 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009534 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9535 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309536 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009538 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9539 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309540 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009542 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9543 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309544 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009546 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9547 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309548 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009550 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9551 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309552 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009554 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9555 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309556 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009558 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9559 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309560 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009562 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9563 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309564 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009566 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9567 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309568 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9569 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009570 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9571 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9572 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9573 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309574};
9575
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309576static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009577 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309579 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009581 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309583 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009585 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9586 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309587 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009589 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9590 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309591 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009593 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9594 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309595 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009597 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9598 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309599 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009601 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9602 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309603 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009605 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9606 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309607 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009609 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9610 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309611 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9612 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +05309613 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9614 MSM_BACKEND_DAI_SLIMBUS_1_TX,
9615 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009617 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9618 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309619 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009621 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009625 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009629 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009633 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009637 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009641 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009645 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009649 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009653 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009657 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009661 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009665 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009669 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009673 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009713 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309715 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009717 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309719 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009721 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309723 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009725 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309727 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009729 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309731 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009733 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309735 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009737 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009741 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309743 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009745 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309747 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009749 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309751 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009753 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309755 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009757 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309759 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309761 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9763 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
9765 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9767 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9768 msm_routing_put_audio_mixer),
9769 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9771 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9772 msm_routing_put_audio_mixer),
9773 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9774 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9776 msm_routing_put_audio_mixer),
9777 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9778 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9779 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9780 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009781 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9782 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9783 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9784 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309785 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9787 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9788 msm_routing_put_audio_mixer),
9789 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9791 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9792 msm_routing_put_audio_mixer),
9793 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9794 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9795 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9796 msm_routing_put_audio_mixer),
9797 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9798 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9799 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9800 msm_routing_put_audio_mixer),
9801 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9802 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9804 msm_routing_put_audio_mixer),
9805 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9806 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9808 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009809 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9810 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9811 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9812 msm_routing_put_audio_mixer),
9813 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9814 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9815 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9816 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309817 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9818 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9820 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309821 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9822 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9823 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9824 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309825};
9826
9827static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009828 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309830 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009832 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309834 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009836 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9837 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309838 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009840 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9841 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309842 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009844 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9845 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309846 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009848 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9849 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309850 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009852 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9853 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309854 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009856 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9857 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309858 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009860 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9861 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309862 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009864 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9865 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009868 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9869 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309870 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009872 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9873 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309874 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009876 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9877 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309878 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009880 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9881 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009884 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9885 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309886 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009888 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9889 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309890 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009892 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9893 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309894 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009896 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9897 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309898 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009900 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9901 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309902 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009904 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9905 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309906 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009908 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9909 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309910 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009912 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9913 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309914 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009916 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9917 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309918 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009920 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9921 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309922 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009924 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9925 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309926 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009928 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9929 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309930 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009932 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9933 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309934 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009936 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9937 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309938 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009940 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9941 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309942 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009944 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309946 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009948 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9949 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309950 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009952 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9953 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309954 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009956 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309958 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009960 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309962 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9963 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309964 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9966 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9967 msm_routing_put_audio_mixer),
9968 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9969 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9970 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9971 msm_routing_put_audio_mixer),
9972 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9973 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9974 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9975 msm_routing_put_audio_mixer),
9976 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9977 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9978 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9979 msm_routing_put_audio_mixer),
9980 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9981 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9982 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9983 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009984 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9985 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9987 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309988 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9989 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9990 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9991 msm_routing_put_audio_mixer),
9992 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9993 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9994 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9995 msm_routing_put_audio_mixer),
9996 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9997 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9998 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9999 msm_routing_put_audio_mixer),
10000 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10002 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10003 msm_routing_put_audio_mixer),
10004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10006 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10007 msm_routing_put_audio_mixer),
10008 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10010 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10011 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010012 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10013 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10014 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10015 msm_routing_put_audio_mixer),
10016 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10017 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10018 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10019 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010020 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10022 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10023 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010024 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10026 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10027 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010028};
10029
10030static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010031 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10032 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010033 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10034 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010035 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10036 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10037 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010039 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10040 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010041 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010043 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10044 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010045 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010047 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10048 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010049 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010051 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10052 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010053 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010055 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10056 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010057 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010059 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10060 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010061 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010063 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10064 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010065 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010067 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10068 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010069 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010071 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010073 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010075 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010077 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010079 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010081 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010083 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10084 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010085 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010087 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10088 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010089 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010091 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10092 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010093 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010095 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010097 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010099 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010101 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010103 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010105 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010107 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010109 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010111 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010113 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010115 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010117 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010119 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10120 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010121 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010123 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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("TERT_TDM_TX_1", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010129 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010131 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010133 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010135 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010137 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010139 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10140 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010141 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010143 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010145 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010151 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010155 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010157 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010159 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010161 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010163 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010165 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010167 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010169 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010171 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10173 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
10175 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10177 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
10179 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10181 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
10183 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10185 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
10187 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10189 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10190 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010191 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10193 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10194 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010195 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10197 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10198 msm_routing_put_audio_mixer),
10199 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10201 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10202 msm_routing_put_audio_mixer),
10203 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10205 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10206 msm_routing_put_audio_mixer),
10207 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10209 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
10211 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10213 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
10215 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10217 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010219 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10221 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
10223 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10224 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10225 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10226 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010227 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10229 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10230 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010231};
10232
10233static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010234 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010236 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010238 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10240 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010242 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010244 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010246 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010248 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010250 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010252 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010254 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010256 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010258 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010260 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010262 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10263 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010264 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010266 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10267 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010268 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010270 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10271 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010272 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010274 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10275 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010276 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010278 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010280 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010282 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010284 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010286 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010288 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010290 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10291 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010292 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010294 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10295 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010296 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010298 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10299 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010300 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010302 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10303 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010304 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010306 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10307 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010308 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010310 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10311 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010312 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010314 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10315 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010316 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010318 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10319 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010320 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010322 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10323 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010324 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010326 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10327 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010328 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010330 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10331 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010332 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010334 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10335 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010336 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010338 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10339 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010340 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010342 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10343 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010344 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010346 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10347 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010348 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010350 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10351 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010352 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010354 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10355 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010356 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010358 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10359 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010360 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010362 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10363 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010364 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010366 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10367 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010368 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10369 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010370 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10371 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10372 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10373 msm_routing_put_audio_mixer),
10374 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10375 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10376 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10377 msm_routing_put_audio_mixer),
10378 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10379 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10380 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10381 msm_routing_put_audio_mixer),
10382 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10383 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10384 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10385 msm_routing_put_audio_mixer),
10386 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10387 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10388 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10389 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010390 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10391 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10392 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10393 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010394 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10395 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10396 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10397 msm_routing_put_audio_mixer),
10398 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10399 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10400 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10401 msm_routing_put_audio_mixer),
10402 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10403 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10404 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10405 msm_routing_put_audio_mixer),
10406 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10407 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10408 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10409 msm_routing_put_audio_mixer),
10410 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10411 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10413 msm_routing_put_audio_mixer),
10414 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10415 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10416 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10417 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010418 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10419 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10421 msm_routing_put_audio_mixer),
10422 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10423 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10424 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10425 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010426 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10428 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10429 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010430};
10431
10432static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010433 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10434 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010435 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10436 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010437 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10438 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10439 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010441 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10442 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010443 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010445 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10446 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010447 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010449 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10450 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010451 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010453 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10454 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010455 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010457 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10458 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010459 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010461 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10462 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010463 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010465 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10466 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010467 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010469 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10470 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010471 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010473 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10474 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010475 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010477 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10478 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010479 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010481 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10482 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010483 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010485 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10486 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010487 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010489 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10490 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010491 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010493 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10494 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010495 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010497 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10498 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010499 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010501 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10502 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010503 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010505 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10506 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010507 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010509 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10510 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010511 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010513 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10514 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010517 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10518 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010519 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010521 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10522 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010523 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010525 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10526 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010527 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010529 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10530 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010531 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010533 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10534 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010535 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010537 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10538 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010539 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010541 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010543 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010545 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010547 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010549 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010551 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010553 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010555 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010557 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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("QUIN_TDM_TX_1", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010563 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010565 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010567 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010569 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010571 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010573 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10574 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010575 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010577 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10578 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010579 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010581 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10582 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010583 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010585 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10586 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010587 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010589 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10590 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010591 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10592 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010593 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10594 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10595 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10596 msm_routing_put_audio_mixer),
10597 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10598 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10599 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10600 msm_routing_put_audio_mixer),
10601 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10603 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10604 msm_routing_put_audio_mixer),
10605 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10607 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10608 msm_routing_put_audio_mixer),
10609 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10611 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10612 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010613 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10615 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10616 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010617 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10619 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10620 msm_routing_put_audio_mixer),
10621 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10623 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10624 msm_routing_put_audio_mixer),
10625 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10627 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10628 msm_routing_put_audio_mixer),
10629 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10630 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10631 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10632 msm_routing_put_audio_mixer),
10633 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10634 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10635 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
10637 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10639 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010641 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10643 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10644 msm_routing_put_audio_mixer),
10645 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10646 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10647 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010649 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10651 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10652 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010653 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10655 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010657};
10658
10659static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010660 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010662 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010664 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10667 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010668 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10669 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10670 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010672 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10673 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010674 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010676 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10677 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010678 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010680 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10681 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010682 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010684 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10685 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010686 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010688 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10689 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010690 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010692 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10693 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010694 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010696 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10697 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010698 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010700 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010702 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010704 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010706 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010708 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010710 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010712 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010714 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010716 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010718 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010720 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010722 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010724 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010726 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010728 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010730 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010732 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010734 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010736 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010738 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010740 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010742 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010744 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010746 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010748 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010750 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010752 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010754 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010756 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010758 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010760 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010762 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010764 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010766 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010768 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10769 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010770 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010772 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10773 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010774 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010776 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10777 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010778 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010780 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10781 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010784 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10785 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010786 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010788 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10789 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010790 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010792 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10793 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010794 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010796 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10797 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010798 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10799 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010800 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10801 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10802 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10803 msm_routing_put_audio_mixer),
10804 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10805 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10806 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10807 msm_routing_put_audio_mixer),
10808 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10809 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10810 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10811 msm_routing_put_audio_mixer),
10812 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10814 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10815 msm_routing_put_audio_mixer),
10816 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10817 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10818 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10819 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010820 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10821 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10822 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10823 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010824 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10825 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10826 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10827 msm_routing_put_audio_mixer),
10828 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10829 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10830 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10831 msm_routing_put_audio_mixer),
10832 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10833 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10834 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10835 msm_routing_put_audio_mixer),
10836 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10837 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10838 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10839 msm_routing_put_audio_mixer),
10840 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10841 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10842 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10843 msm_routing_put_audio_mixer),
10844 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10845 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10847 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010848 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10849 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10850 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10851 msm_routing_put_audio_mixer),
10852 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10853 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10854 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10855 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010856 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10858 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10859 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010860};
10861
10862static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010863 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10864 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010865 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10866 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010867 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10868 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10869 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010871 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10872 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010873 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010875 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10876 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010877 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010879 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10880 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010881 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010883 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10884 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010885 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010887 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10888 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010889 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010891 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10892 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010893 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010895 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10896 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010897 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010899 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10900 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010901 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010903 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10904 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010905 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010907 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010909 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010911 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10912 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010913 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010915 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010917 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010919 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010921 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010923 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10924 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010925 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010927 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010929 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010931 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010933 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010935 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010937 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010939 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010941 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010943 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10944 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010945 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010947 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010949 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010951 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010953 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010955 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10956 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010957 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010959 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010961 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010963 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10964 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010965 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010967 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10968 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010969 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010971 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10972 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010973 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010975 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10976 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010977 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010979 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10980 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010981 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010983 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010985 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010987 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010989 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010991 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10992 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010993 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010995 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10996 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010997 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010999 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11000 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011001 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011003 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011005 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11006 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011007 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11009 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11010 msm_routing_put_audio_mixer),
11011 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11013 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11014 msm_routing_put_audio_mixer),
11015 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11017 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11018 msm_routing_put_audio_mixer),
11019 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11021 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11022 msm_routing_put_audio_mixer),
11023 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11025 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11026 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011027 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11029 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011031 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11033 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11034 msm_routing_put_audio_mixer),
11035 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11038 msm_routing_put_audio_mixer),
11039 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11041 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11042 msm_routing_put_audio_mixer),
11043 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11044 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11045 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11046 msm_routing_put_audio_mixer),
11047 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11049 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
11051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11053 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11054 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011055 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11057 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11058 msm_routing_put_audio_mixer),
11059 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11061 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11062 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011063 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11064 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11065 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11066 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011067 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11069 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11070 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011071};
11072
Asish Bhattacharya34504582017-08-08 12:55:01 +053011073static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011074 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11075 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011076 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11077 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011078 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11079 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11080 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011082 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11083 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011084 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011086 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11087 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011088 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011090 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11091 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011092 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011094 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11095 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011096 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011098 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011100 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011102 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011104 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011106 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11107 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011108 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011110 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11111 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011112 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011114 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11115 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011116 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011118 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011120 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011122 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011124 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011126 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11127 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011128 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011130 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11131 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011132 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011134 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11135 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011138 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11139 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011140 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011142 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11143 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011144 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011146 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011148 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011150 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11151 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011152 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011154 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11155 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011156 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011158 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11159 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011160 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011162 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11163 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011164 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011166 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11167 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011168 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011170 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011172 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011174 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011176 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011178 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011182 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011184 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011186 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011188 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011190 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011192 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011194 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011196 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011198 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011200 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011202 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011204 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011206 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011208 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011210 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011212 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011214 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011218 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11220 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
11222 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
11226 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11229 msm_routing_put_audio_mixer),
11230 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11232 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11233 msm_routing_put_audio_mixer),
11234 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11236 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11237 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011238 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11240 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011242 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11244 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11245 msm_routing_get_audio_mixer,
11246 msm_routing_put_audio_mixer),
11247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11249 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11250 msm_routing_get_audio_mixer,
11251 msm_routing_put_audio_mixer),
11252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11254 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11255 msm_routing_get_audio_mixer,
11256 msm_routing_put_audio_mixer),
11257 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11259 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11260 msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
11262 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11264 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11265 msm_routing_get_audio_mixer,
11266 msm_routing_put_audio_mixer),
11267 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11268 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11269 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11270 msm_routing_get_audio_mixer,
11271 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011272 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11273 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11274 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11275 msm_routing_put_audio_mixer),
11276 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11277 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11278 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11279 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011280 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11281 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11282 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11283 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011284 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11285 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11286 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11287 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053011288};
11289
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011290static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011291 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011293 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11294 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011295 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11297 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011299 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011301 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011303 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011305 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011307 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011311 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011313 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011315 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11316 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011317 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011319 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11320 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011321 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011323 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011325 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011327 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011329 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011331 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011333 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011335 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011337 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011339 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011341 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011343 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011345 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011347 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011349 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011351 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011353 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011355 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011357 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011359 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011361 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011363 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11364 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011365 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011367 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011369 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011371 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011373 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11374 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011375 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11377 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
11379 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11381 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11382 msm_routing_put_audio_mixer),
11383 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11385 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11386 msm_routing_put_audio_mixer),
11387 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11389 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
11391 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11393 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011395 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11397 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011399 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11401 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
11403 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11405 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11406 msm_routing_put_audio_mixer),
11407 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11409 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
11411 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11413 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
11415 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11417 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
11419 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11421 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011423 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11425 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
11427 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11429 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011431 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11432 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11433 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011435};
11436
Laxminath Kasam38070be2017-08-17 18:21:59 +053011437static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011438 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11439 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011440 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11441 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011442 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011446 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11447 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011448 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011450 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11451 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011452 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011454 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11455 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011456 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011458 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11459 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011460 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011462 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11463 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011464 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011466 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11467 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011468 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011470 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011472 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011474 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11475 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011476 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011478 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011480 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011482 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11483 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011484 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011486 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11487 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011488 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011490 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011492 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011494 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011496 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011498 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011500 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011502 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011504 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011506 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011508 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011510 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011512 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011514 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011516 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011518 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011520 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011522 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011524 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011526 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11527 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011528 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011530 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11531 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011532 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011534 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11535 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011536 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011538 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11539 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011540 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011542 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11543 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011544 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11545 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011546 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11547 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11548 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11549 msm_routing_put_audio_mixer),
11550 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11551 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11552 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11553 msm_routing_put_audio_mixer),
11554 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11555 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11557 msm_routing_put_audio_mixer),
11558 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11559 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11560 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11561 msm_routing_put_audio_mixer),
11562 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11564 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11565 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011566 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11567 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11568 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11569 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011570 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11571 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11572 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11573 msm_routing_get_audio_mixer,
11574 msm_routing_put_audio_mixer),
11575 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11576 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11577 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11578 msm_routing_get_audio_mixer,
11579 msm_routing_put_audio_mixer),
11580 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11581 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11582 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11583 msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
11585 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11587 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11588 msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
11590 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11592 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11593 msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
11595 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11597 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11598 msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011600 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11602 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11603 msm_routing_put_audio_mixer),
11604 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11606 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11607 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011608 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11610 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11611 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011612 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11613 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11614 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11615 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011616};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011617static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011618 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11619 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011620 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11621 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011622 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11623 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11624 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011626 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011628 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011630 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011632 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011634 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011636 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011638 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011640 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011644 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011648 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011652 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011654 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11656 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
11658 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11660 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011662 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11664 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
11666 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11668 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
11670 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11672 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
11674 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11676 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
11678 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11680 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011682 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11684 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11688 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11689 msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
11691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11693 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11694 msm_routing_get_audio_mixer,
11695 msm_routing_put_audio_mixer),
11696 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11697 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11698 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11699 msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
11701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11703 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11704 msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11708 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11709 msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
11711 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11713 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11714 msm_routing_get_audio_mixer,
11715 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011716 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11717 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11718 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11719 msm_routing_put_audio_mixer),
11720 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11721 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11722 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11723 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011724 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11725 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11726 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11727 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011728};
11729
11730static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011731 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011733 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11734 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011735 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11737 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011739 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11740 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011741 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011743 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11744 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011745 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11746 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011747 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11748 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11749 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11750 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011751 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11752 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11753 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011755 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11756 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011757 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011759 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11760 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011761 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011763 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11764 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011765 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011767 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11768 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011769 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011771 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11772 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011773 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011775 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11776 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011777 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11778 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011779 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11780 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11781 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11782 msm_routing_put_audio_mixer),
11783 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11784 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11785 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11786 msm_routing_put_audio_mixer),
11787 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11788 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11789 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11790 msm_routing_put_audio_mixer),
11791 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11792 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11793 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11794 msm_routing_put_audio_mixer),
11795 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11796 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11797 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11798 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011799 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11800 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11801 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11802 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011803 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11804 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11805 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11806 msm_routing_get_audio_mixer,
11807 msm_routing_put_audio_mixer),
11808 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11809 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11810 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11811 msm_routing_get_audio_mixer,
11812 msm_routing_put_audio_mixer),
11813 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11815 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11816 msm_routing_get_audio_mixer,
11817 msm_routing_put_audio_mixer),
11818 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11819 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11820 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11821 msm_routing_get_audio_mixer,
11822 msm_routing_put_audio_mixer),
11823 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11824 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11825 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11826 msm_routing_get_audio_mixer,
11827 msm_routing_put_audio_mixer),
11828 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11829 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11830 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11831 msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011833 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11835 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
11837 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11838 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11839 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11840 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011841 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11843 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011845};
11846
11847static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011848 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11849 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011850 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11851 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011852 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11853 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11854 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011856 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11857 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011858 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011860 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11861 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011862 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011864 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11865 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011866 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011868 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11869 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011870 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011872 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11873 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011874 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011876 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11877 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011878 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011880 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011882 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11883 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010011884 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11886 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11887 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011888 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11890 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11891 msm_routing_put_audio_mixer),
11892 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11894 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011896 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11898 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
11900 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11902 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
11904 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11906 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11907 msm_routing_put_audio_mixer),
11908 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11910 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
11912 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11914 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011916 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11918 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011920 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11922 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11923 msm_routing_get_audio_mixer,
11924 msm_routing_put_audio_mixer),
11925 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11926 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11927 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11928 msm_routing_get_audio_mixer,
11929 msm_routing_put_audio_mixer),
11930 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11931 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11932 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11933 msm_routing_get_audio_mixer,
11934 msm_routing_put_audio_mixer),
11935 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11936 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11937 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11938 msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11942 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11943 msm_routing_get_audio_mixer,
11944 msm_routing_put_audio_mixer),
11945 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11946 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11947 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11948 msm_routing_get_audio_mixer,
11949 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011950 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11951 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11952 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11953 msm_routing_put_audio_mixer),
11954 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11955 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11956 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11957 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011958 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11959 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11960 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11961 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011962};
11963
11964static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011965 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11966 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011967 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011969 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11970 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011971 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011973 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11974 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011975 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011977 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11978 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011979 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011981 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11982 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011983 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011985 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11986 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011987 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011989 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11990 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011991 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011993 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11994 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011995 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011997 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11998 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011999 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012001 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12002 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012003 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012005 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12006 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012007 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012009 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12010 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012011 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012013 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12014 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012015 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012017 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12018 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012019 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012021 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12022 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012023 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012025 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12026 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012027 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012029 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12030 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012031 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012033 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12034 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012035 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012037 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12038 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012039 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012041 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012043 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012045 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012047 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012049 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012051 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012053 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012055 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012057 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012059 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012061 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012063 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12064 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012065 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12067 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12068 msm_routing_put_audio_mixer),
12069 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12071 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12072 msm_routing_put_audio_mixer),
12073 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12074 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12075 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12076 msm_routing_put_audio_mixer),
12077 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12079 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12080 msm_routing_put_audio_mixer),
12081 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12083 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12084 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012085 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12087 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12088 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012089 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12090 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12091 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12092 msm_routing_put_audio_mixer),
12093 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12095 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12096 msm_routing_put_audio_mixer),
12097 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12099 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12100 msm_routing_put_audio_mixer),
12101 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12102 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12103 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12104 msm_routing_put_audio_mixer),
12105 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12106 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12107 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12108 msm_routing_put_audio_mixer),
12109 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12110 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12111 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12112 msm_routing_put_audio_mixer),
12113 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12114 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12115 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12116 msm_routing_put_audio_mixer),
12117 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12118 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12119 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12120 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012121 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12122 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12123 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12124 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070012125};
12126
12127static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
12128 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12129 MSM_BACKEND_DAI_AUXPCM_TX,
12130 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12131 msm_routing_put_audio_mixer),
12132 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12134 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12135 msm_routing_put_audio_mixer),
12136 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12137 MSM_BACKEND_DAI_PRI_TDM_TX_0,
12138 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12139 msm_routing_put_audio_mixer),
12140 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12141 MSM_BACKEND_DAI_PRI_TDM_TX_1,
12142 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12143 msm_routing_put_audio_mixer),
12144 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12145 MSM_BACKEND_DAI_PRI_TDM_TX_2,
12146 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12147 msm_routing_put_audio_mixer),
12148 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12149 MSM_BACKEND_DAI_PRI_TDM_TX_3,
12150 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12151 msm_routing_put_audio_mixer),
12152 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12153 MSM_BACKEND_DAI_SEC_TDM_TX_0,
12154 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12155 msm_routing_put_audio_mixer),
12156 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12157 MSM_BACKEND_DAI_SEC_TDM_TX_1,
12158 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12159 msm_routing_put_audio_mixer),
12160 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12161 MSM_BACKEND_DAI_SEC_TDM_TX_2,
12162 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12163 msm_routing_put_audio_mixer),
12164 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12165 MSM_BACKEND_DAI_SEC_TDM_TX_3,
12166 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12167 msm_routing_put_audio_mixer),
12168 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12169 MSM_BACKEND_DAI_TERT_TDM_TX_0,
12170 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12171 msm_routing_put_audio_mixer),
12172 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12173 MSM_BACKEND_DAI_TERT_TDM_TX_1,
12174 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12175 msm_routing_put_audio_mixer),
12176 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12177 MSM_BACKEND_DAI_TERT_TDM_TX_2,
12178 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12179 msm_routing_put_audio_mixer),
12180 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12181 MSM_BACKEND_DAI_TERT_TDM_TX_3,
12182 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12183 msm_routing_put_audio_mixer),
12184 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12185 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
12186 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12187 msm_routing_put_audio_mixer),
12188 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12189 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
12190 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12191 msm_routing_put_audio_mixer),
12192 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12193 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
12194 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12195 msm_routing_put_audio_mixer),
12196 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12197 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
12198 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12199 msm_routing_put_audio_mixer),
12200 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12201 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
12202 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12203 msm_routing_put_audio_mixer),
12204 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12205 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
12206 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12207 msm_routing_put_audio_mixer),
12208 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12209 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
12210 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12211 msm_routing_put_audio_mixer),
12212 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12213 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
12214 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12215 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012216 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012217 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12218 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012219 msm_routing_put_audio_mixer),
12220 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012221 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12222 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012223 msm_routing_put_audio_mixer),
12224 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012225 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12226 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012227 msm_routing_put_audio_mixer),
12228 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012229 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12230 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012231 msm_routing_put_audio_mixer),
12232 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012233 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12234 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012235 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012236 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12237 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12238 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12239 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012240 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012241 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12242 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12243 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012244 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012245 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12246 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12247 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12250 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12251 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12254 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12255 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12258 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12259 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012260 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012261 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12262 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12263 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012264 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12265 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012266 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012267 msm_routing_put_audio_mixer),
12268 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12269 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012270 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012271 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012272 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12273 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12274 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12275 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012276};
12277
Surendar Karkac1cde372018-08-14 18:56:24 +053012278static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
12279 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_SLIMBUS_0_TX,
12281 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12282 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012283 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12285 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12286 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012287 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_SLIMBUS_6_TX,
12289 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12290 msm_routing_put_audio_mixer),
12291 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12292 MSM_BACKEND_DAI_SLIMBUS_7_TX,
12293 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12294 msm_routing_put_audio_mixer),
12295 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12296 MSM_BACKEND_DAI_PRI_MI2S_TX,
12297 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12298 msm_routing_put_audio_mixer),
12299 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12300 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12301 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12302 msm_routing_put_audio_mixer),
12303 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12304 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12305 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12306 msm_routing_put_audio_mixer),
12307 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12308 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12309 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12310 msm_routing_put_audio_mixer),
12311 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12312 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
12313 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12314 msm_routing_put_audio_mixer),
12315 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12316 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12317 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12318 msm_routing_put_audio_mixer),
12319 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12320 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12321 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12322 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012323 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12324 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12325 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12326 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012327 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12328 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12329 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12330 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012331};
12332
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012333static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012334 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12335 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012336 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12337 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012338 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12339 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12340 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012342 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12343 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012344 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012346 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12347 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012348 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012350 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12351 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012352 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012354 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12355 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012356 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012358 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12359 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012360 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012362 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12363 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012364 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012366 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12367 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012368 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12369 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012370 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12371 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12372 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12373 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012374 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12376 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12377 msm_routing_put_audio_mixer),
12378 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12380 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12381 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012382 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12384 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12385 msm_routing_put_audio_mixer),
12386 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12388 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12389 msm_routing_put_audio_mixer),
12390 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12391 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12392 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12393 msm_routing_put_audio_mixer),
12394 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12395 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12396 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12397 msm_routing_put_audio_mixer),
12398 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12399 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12400 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12401 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012402 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12403 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12404 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12405 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012406 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12408 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12409 msm_routing_get_audio_mixer,
12410 msm_routing_put_audio_mixer),
12411 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12412 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12413 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12414 msm_routing_get_audio_mixer,
12415 msm_routing_put_audio_mixer),
12416 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12418 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12419 msm_routing_get_audio_mixer,
12420 msm_routing_put_audio_mixer),
12421 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12422 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12423 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12424 msm_routing_get_audio_mixer,
12425 msm_routing_put_audio_mixer),
12426 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12427 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12428 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12429 msm_routing_get_audio_mixer,
12430 msm_routing_put_audio_mixer),
12431 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12432 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12433 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12434 msm_routing_get_audio_mixer,
12435 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012436 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12437 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12438 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12439 msm_routing_put_audio_mixer),
12440 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12441 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12442 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12443 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012444 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12445 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12446 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12447 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012448};
12449
12450static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012451 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012453 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12454 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012455 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12456 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12457 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012459 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12460 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012461 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012463 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12464 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012465 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012467 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12468 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012469 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012471 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12472 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012473 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012475 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12476 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012477 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012479 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12480 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012481 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012483 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12484 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012485 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12486 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012487 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12488 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12489 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12490 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012491 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12492 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12493 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12494 msm_routing_put_audio_mixer),
12495 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12496 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12497 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12498 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012499 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12500 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12501 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12502 msm_routing_put_audio_mixer),
12503 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12504 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12505 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12506 msm_routing_put_audio_mixer),
12507 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12508 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12509 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12510 msm_routing_put_audio_mixer),
12511 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12512 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12513 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12514 msm_routing_put_audio_mixer),
12515 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12516 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12517 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12518 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012519 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12520 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12521 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12522 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012523 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12524 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12525 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12526 msm_routing_get_audio_mixer,
12527 msm_routing_put_audio_mixer),
12528 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12529 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12530 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12531 msm_routing_get_audio_mixer,
12532 msm_routing_put_audio_mixer),
12533 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12534 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12535 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12536 msm_routing_get_audio_mixer,
12537 msm_routing_put_audio_mixer),
12538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12540 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12541 msm_routing_get_audio_mixer,
12542 msm_routing_put_audio_mixer),
12543 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12544 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12545 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12546 msm_routing_get_audio_mixer,
12547 msm_routing_put_audio_mixer),
12548 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12550 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12551 msm_routing_get_audio_mixer,
12552 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012553 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12554 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12555 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12556 msm_routing_put_audio_mixer),
12557 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12558 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12559 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12560 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012561 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12562 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12563 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12564 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012565};
12566
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012567static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012570 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12571 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012572 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012574 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12575 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012576 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012578 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12579 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012580 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012582 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12583 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012586 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12587 msm_routing_put_voice_mixer),
12588};
12589
12590static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012591 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12592 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012593 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12594 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012595 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12596 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012597 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12598 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012599 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12600 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012601 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12602 msm_routing_put_voice_mixer),
12603};
12604
12605static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012606 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12607 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012608 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12609 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012610 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12611 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012612 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12613 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012614 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12615 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012616 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12617 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012618 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12619 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012620 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12621 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012622 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12623 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012624 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12625 msm_routing_put_voice_mixer),
12626};
12627
12628static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012629 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12630 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012631 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12632 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012633 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12634 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012635 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12636 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012637 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12638 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012639 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12640 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012641 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12642 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012643 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12644 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12646 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12648 msm_routing_put_voice_mixer),
12649};
12650
12651static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012652 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12653MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12655 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012656 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12657MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012658 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12659 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012660 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12661MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012662 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12663 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012664 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12665MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012666 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12667 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012668 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12669MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012670 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12671 msm_routing_put_voice_mixer),
12672};
12673
12674static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012675 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12676 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012677 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12678 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012679 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12680 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012681 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12682 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012683 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012685 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12686 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012687 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012689 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12690 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012691 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12692 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012693 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12694 msm_routing_put_voice_mixer),
12695};
12696
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012697static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012698 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12699MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012700 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12701 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012702 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12703MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012704 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12705 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012706 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12707MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012708 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12709 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012710 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12711MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012712 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12713 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012714 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12715MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012716 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12717 msm_routing_put_voice_mixer),
12718};
12719
Karthikeyan Mani57550082018-05-03 18:43:58 -070012720static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12721 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12722 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12723 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12724 msm_routing_put_voice_mixer),
12725 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12726 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12727 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12728 msm_routing_put_voice_mixer),
12729 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12730 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12731 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12732 msm_routing_put_voice_mixer),
12733 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12734 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12735 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12736 msm_routing_put_voice_mixer),
12737 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12738 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12739 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12740 msm_routing_put_voice_mixer),
12741};
12742
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012743static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012744 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12745 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012746 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12747 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012748 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12749 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012750 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12751 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012752 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12753 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012754 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12755 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012756 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12757 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012758 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12759 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012760 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12761 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012762 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12763 msm_routing_put_voice_mixer),
12764};
12765
12766static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012767 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12768 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012769 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12770 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012771 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12772 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012773 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12774 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012775 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012777 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12778 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012779 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12780 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012781 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12782 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012783 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12784 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012785 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12786 msm_routing_put_voice_mixer),
12787};
12788
12789static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012790 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12791MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012792 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12793 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012794 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12795MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012796 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12797 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012798 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12799MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012800 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12801 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012802 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12803MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012804 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12805 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012806 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12807MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012808 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12809 msm_routing_put_voice_mixer),
12810};
12811
12812static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012813 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12814MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12816 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012817 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12818MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012819 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12820 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012821 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12822MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012823 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12824 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012825 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12826MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012827 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12828 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012829 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12830MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012831 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12832 msm_routing_put_voice_mixer),
12833};
12834
12835static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012836 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12837 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012838 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12839 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012840 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12841 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012842 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12843 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012844 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12845 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012846 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12847 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012848 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12849 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012850 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12851 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012852 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12853 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012854 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12855 msm_routing_put_voice_mixer),
12856};
12857
12858static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012859 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12860 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012861 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12862 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012863 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012865 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12866 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012867 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12868 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012869 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12870 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012871 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12872 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012873 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12874 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012875 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12876 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012877 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12878 msm_routing_put_voice_mixer),
12879};
12880
12881static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012882 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12883 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012884 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12885 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012886 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012888 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12889 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012890 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12891 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012892 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12893 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012894 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12895 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012896 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12897 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012898 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12899 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012900 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12901 msm_routing_put_voice_mixer),
12902};
12903
12904static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012905 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12906 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012907 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12908 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012909 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12910 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012911 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12912 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012913 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12914 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012915 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12916 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012917 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12918 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012919 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12920 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012921 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12922 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012923 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12924 msm_routing_put_voice_mixer),
12925};
12926
12927static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012928 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012930 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12931 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012932 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012934 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12935 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012936 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012938 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12939 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012940 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12941 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012942 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12943 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012944 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012946 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12947 msm_routing_put_voice_mixer),
12948};
12949
12950static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012951 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12952 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012953 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12954 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012955 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12956 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012957 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12958 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012959 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12960 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012961 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12962 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012963 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12964 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012965 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12966 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012967 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12968 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012969 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12970 msm_routing_put_voice_mixer),
12971};
12972
12973static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012974 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12975MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012976 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12977 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012978 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12979MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012980 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12981 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012982 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12983MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012984 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12985 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012986 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12987MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12989 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012990 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12991MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012992 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12993 msm_routing_put_voice_mixer),
12994};
12995
12996static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012997 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12998MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012999 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13000 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013001 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13002MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013003 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13004 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013005 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13006MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013007 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13008 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013009 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13010MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013011 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13012 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013013 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13014MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013015 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13016 msm_routing_put_voice_mixer),
13017};
13018
13019static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013020 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13021MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013022 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13023 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013024 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13025MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013026 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13027 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013028 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13029MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013030 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13031 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013032 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13033MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013034 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13035 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013036 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13037MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013038 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13039 msm_routing_put_voice_mixer),
13040};
13041
Rohit Kumara5077932017-09-10 22:05:05 +053013042static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13044MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013045 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13046 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13048MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013049 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13050 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13052MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013053 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13054 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013055 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13056MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013057 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13058 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13060MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013061 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13062 msm_routing_put_voice_mixer),
13063};
13064
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013065static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013066 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013068 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13069 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013070 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13071 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13073 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013074 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13075 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013076 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13077 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013078 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13079 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013080 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13081 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013082 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013084 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13085 msm_routing_put_voice_mixer),
13086};
13087
13088static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013089 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13090MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013091 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13092 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013093 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13094MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013095 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13096 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013097 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13098MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013099 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13100 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013101 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13102MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013103 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13104 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013105 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13106MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013107 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13108 msm_routing_put_voice_mixer),
13109};
13110
13111static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013112 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13113 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013114 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13115 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013116 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13117 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013118 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13119 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013120 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13121 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013122 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13123 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013124 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13125 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013126 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13127 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013128 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13129 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013130 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13131 msm_routing_put_voice_mixer),
13132};
13133
13134static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013135 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13136 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013137 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13138 msm_routing_put_voice_mixer),
13139};
13140
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013141static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
13142 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13144 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13145 msm_routing_put_voice_mixer),
13146 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13148 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13149 msm_routing_put_voice_mixer),
13150 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13152 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13153 msm_routing_put_voice_mixer),
13154 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13156 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13157 msm_routing_put_voice_mixer),
13158 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13160 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13161 msm_routing_put_voice_mixer),
13162};
13163
13164static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
13165 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13167 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13168 msm_routing_put_voice_mixer),
13169 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13171 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13172 msm_routing_put_voice_mixer),
13173 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13174 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13175 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13176 msm_routing_put_voice_mixer),
13177 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13179 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13180 msm_routing_put_voice_mixer),
13181 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13183 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13184 msm_routing_put_voice_mixer),
13185};
13186
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013187static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
13188 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13189 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13190 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13191 msm_routing_put_voice_mixer),
13192 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13193 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13194 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13195 msm_routing_put_voice_mixer),
13196 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13197 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13198 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13199 msm_routing_put_voice_mixer),
13200 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13201 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13202 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13203 msm_routing_put_voice_mixer),
13204 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13205 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13206 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13207 msm_routing_put_voice_mixer),
13208};
13209
13210static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
13211 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13212 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13213 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13214 msm_routing_put_voice_mixer),
13215 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13216 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13217 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13218 msm_routing_put_voice_mixer),
13219 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13220 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13221 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13222 msm_routing_put_voice_mixer),
13223 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13224 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13225 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13226 msm_routing_put_voice_mixer),
13227 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13228 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13229 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13230 msm_routing_put_voice_mixer),
13231};
13232
13233static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
13234 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13235 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13236 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13237 msm_routing_put_voice_mixer),
13238 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13240 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13241 msm_routing_put_voice_mixer),
13242 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13243 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13244 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13245 msm_routing_put_voice_mixer),
13246 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13248 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13249 msm_routing_put_voice_mixer),
13250 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13252 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13253 msm_routing_put_voice_mixer),
13254};
13255
13256static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
13257 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13259 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13260 msm_routing_put_voice_mixer),
13261 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13263 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13264 msm_routing_put_voice_mixer),
13265 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13267 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13268 msm_routing_put_voice_mixer),
13269 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13271 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13272 msm_routing_put_voice_mixer),
13273 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13275 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13276 msm_routing_put_voice_mixer),
13277};
13278
13279static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
13280 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13282 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13283 msm_routing_put_voice_mixer),
13284 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13286 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13287 msm_routing_put_voice_mixer),
13288 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13290 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13291 msm_routing_put_voice_mixer),
13292 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13294 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13295 msm_routing_put_voice_mixer),
13296 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13298 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13299 msm_routing_put_voice_mixer),
13300};
13301
13302static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
13303 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13305 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13306 msm_routing_put_voice_mixer),
13307 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13309 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13310 msm_routing_put_voice_mixer),
13311 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13313 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13314 msm_routing_put_voice_mixer),
13315 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13317 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13318 msm_routing_put_voice_mixer),
13319 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13321 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13322 msm_routing_put_voice_mixer),
13323};
13324
13325static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
13326 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13327 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13328 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13329 msm_routing_put_voice_mixer),
13330 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13331 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13332 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13333 msm_routing_put_voice_mixer),
13334 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13335 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13336 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13337 msm_routing_put_voice_mixer),
13338 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13339 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13340 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13341 msm_routing_put_voice_mixer),
13342 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13343 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13344 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13345 msm_routing_put_voice_mixer),
13346};
13347
13348static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
13349 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13351 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13352 msm_routing_put_voice_mixer),
13353 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13355 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13356 msm_routing_put_voice_mixer),
13357 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13358 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13359 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13360 msm_routing_put_voice_mixer),
13361 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13363 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13364 msm_routing_put_voice_mixer),
13365 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13367 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13368 msm_routing_put_voice_mixer),
13369};
13370
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013371static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013372 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13373 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013374 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13375 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013376 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13377 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013378 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13379 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013380};
13381
13382static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013383 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013385 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13386 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013387 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13388 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013389 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13390 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013391};
13392
13393static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013394 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013396 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13397 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013400 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13401 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013402};
13403
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013404static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013405 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13406 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013407 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13408 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013409 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013411 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13412 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013413 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013414 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13415 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013416 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013417 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13418 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013419 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013420 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13421 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013422 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013423 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13424 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013425 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013426 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13427 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013428 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013429 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13430 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013431 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013432 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13433 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013434 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013435 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13436 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013437 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013438 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13439 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013440 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013441 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13442 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013443 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013444 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13445 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013446 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013447 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13448 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013449 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013450 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13451 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013452 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013454 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13455 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013456 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13457MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013458 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013459 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13460 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13461 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13462 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13464 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013465 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13466 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13467 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013468 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13470 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13471 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13472 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13473 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13474 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13475 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13476 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13477 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13479 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13480 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13482 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13483 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13484 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13485 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013486};
13487
13488static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013489 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013491 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13492 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013493 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13494 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013495 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13496 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013497 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013498 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13499 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013500 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013501 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13502 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013503 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013504 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13505 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013506 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013507 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13508 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013509 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013510 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13511 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013512 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013513 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13514 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013515 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013516 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13517 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013518 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013519 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13520 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013522 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13523 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013524 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013525 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13526 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013527 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013528 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13529 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013530 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013531 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13532 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013533 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013534 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13535 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013536 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013537 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13538 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013539 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13541 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13542 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13543 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13544 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013545 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13547 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013548 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13549 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13550 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13551 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13553 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13554 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13556 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13557 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13559 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13560 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13561 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13562 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13563 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13565 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013566};
13567
13568static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013569 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013571 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13572 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013573 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013575 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13576 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013577 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013579 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13580 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013581 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013583 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13584 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013585 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013587 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13588 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013589 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013591 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13592 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013593 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013595 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13596 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013597 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013599 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13600 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013601 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13602 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013603 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13604 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013605 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13606 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013607 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13608 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013609 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013611 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13612 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013613 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13614 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013615 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13616 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013617 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013619 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13620 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013621 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013623 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13624 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013625 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13628 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013629 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13632 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013633 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13634 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13635 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13638 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013639 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13641 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13644 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13645 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13647 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13650 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13653 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13654 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13656 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13659 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013660};
13661
13662static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13666 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013667 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013669 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13670 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013671 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013673 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13674 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013675 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013677 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13678 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013679 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013681 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13682 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013683 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013685 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13686 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013687 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013689 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13690 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013691 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013693 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13694 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013695 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13696 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013697 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13698 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013699 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13700 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013701 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13702 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013703 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013705 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13706 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013707 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013709 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13710 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013711 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013713 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13714 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013715 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013717 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13718 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013719 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013721 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13722 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013723 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013725 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13726 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013727 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013729 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13730 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013731 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013733 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13734 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013735 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013737 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13738 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013739 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13740 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13741 1, 0, msm_routing_get_voice_stub_mixer,
13742 msm_routing_put_voice_stub_mixer),
13743 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13745 1, 0, msm_routing_get_voice_stub_mixer,
13746 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013747 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13749 1, 0, msm_routing_get_voice_stub_mixer,
13750 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013751 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13753 1, 0, msm_routing_get_voice_stub_mixer,
13754 msm_routing_put_voice_stub_mixer),
13755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13757 1, 0, msm_routing_get_voice_stub_mixer,
13758 msm_routing_put_voice_stub_mixer),
13759 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13761 1, 0, msm_routing_get_voice_stub_mixer,
13762 msm_routing_put_voice_stub_mixer),
13763 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13765 1, 0, msm_routing_get_voice_stub_mixer,
13766 msm_routing_put_voice_stub_mixer),
13767 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13769 1, 0, msm_routing_get_voice_stub_mixer,
13770 msm_routing_put_voice_stub_mixer),
13771 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13773 1, 0, msm_routing_get_voice_stub_mixer,
13774 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013775};
13776
13777static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013778 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013780 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13781 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013782 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013784 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13785 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013786 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013788 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13789 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013790 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013792 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13793 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013794 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013796 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13797 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013798 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013800 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13801 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013802 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013804 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13805 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013806 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013808 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13809 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013810 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013812 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13813 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013814 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013816 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13817 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013818 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013820 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13821 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013822 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013824 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13825 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013828 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13829 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013832 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13833 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013836 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13837 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013838 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13840 1, 0, msm_routing_get_voice_stub_mixer,
13841 msm_routing_put_voice_stub_mixer),
13842 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13844 1, 0, msm_routing_get_voice_stub_mixer,
13845 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013846 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13848 1, 0, msm_routing_get_voice_stub_mixer,
13849 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013850 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13851 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13852 1, 0, msm_routing_get_voice_stub_mixer,
13853 msm_routing_put_voice_stub_mixer),
13854 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13856 1, 0, msm_routing_get_voice_stub_mixer,
13857 msm_routing_put_voice_stub_mixer),
13858 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13860 1, 0, msm_routing_get_voice_stub_mixer,
13861 msm_routing_put_voice_stub_mixer),
13862 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13863 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13864 1, 0, msm_routing_get_voice_stub_mixer,
13865 msm_routing_put_voice_stub_mixer),
13866 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13867 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13868 1, 0, msm_routing_get_voice_stub_mixer,
13869 msm_routing_put_voice_stub_mixer),
13870 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13871 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13872 1, 0, msm_routing_get_voice_stub_mixer,
13873 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013874};
13875
13876static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013877 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13878 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013879 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13880 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013881 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13882 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013883 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13884 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013885 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13886 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013887 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13888 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013889 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13890 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013891 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13892 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013893 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13894 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013895 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13896 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013897 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13898 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013899 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13900 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013901 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13902 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013903 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13904 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013905 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13906 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013907 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13908 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013909 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013911 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13912 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013913 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13914 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013915 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13916 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013917 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13918 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013919 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13920 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013921 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13922 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013923 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13924 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013925 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13926 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013927 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13928 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013929 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013931 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13932 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013933 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13934 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013935 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13936 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013937 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13938 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13939 1, 0, msm_routing_get_voice_stub_mixer,
13940 msm_routing_put_voice_stub_mixer),
13941 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13942 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13943 1, 0, msm_routing_get_voice_stub_mixer,
13944 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013945 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13946 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13947 1, 0, msm_routing_get_voice_stub_mixer,
13948 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013949 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13950 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13951 1, 0, msm_routing_get_voice_stub_mixer,
13952 msm_routing_put_voice_stub_mixer),
13953 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13954 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13955 1, 0, msm_routing_get_voice_stub_mixer,
13956 msm_routing_put_voice_stub_mixer),
13957 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13958 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13959 1, 0, msm_routing_get_voice_stub_mixer,
13960 msm_routing_put_voice_stub_mixer),
13961 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13962 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13963 1, 0, msm_routing_get_voice_stub_mixer,
13964 msm_routing_put_voice_stub_mixer),
13965 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13966 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13967 1, 0, msm_routing_get_voice_stub_mixer,
13968 msm_routing_put_voice_stub_mixer),
13969 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13970 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13971 1, 0, msm_routing_get_voice_stub_mixer,
13972 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013973};
13974
13975static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013976 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13977 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013978 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13979 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013980 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013982 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13983 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013984 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13985 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13986 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013987 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013988 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13989 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013990 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13991 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013992 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13993 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013994 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13995 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013996 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13997 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013998 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13999 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014000 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014002 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14003 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014004 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14005 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014006 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14007 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014008 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014010 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14011 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14015 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014018 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14019 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014022 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14023 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014024 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014026 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14027 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014028 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014030 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14031 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14035 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014036 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014038 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14039 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014040 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14042 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14043 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14045 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014046 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14047 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14048 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14051 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14052 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14054 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14055 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14057 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14058 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
14059 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
14060 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14061 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
14062 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
14063 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14064 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
14066 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014067};
14068
14069static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014070 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14071 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014072 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014074 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14075 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014076 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014078 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14079 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014080 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014082 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14083 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014084 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014086 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14087 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014088 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014090 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14091 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014092 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014094 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14095 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014096 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014098 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14099 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014100 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014102 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14103 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014104 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014106 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14107 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014108 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14109 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014110 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_INT0_MI2S_RX,
14112 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14113 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014114};
14115
14116static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014117 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14118 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014119 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014121 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14122 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014123 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014125 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14126 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014127 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014129 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14130 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014131 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014133 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14134 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014135 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014137 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14138 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014139 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014141 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14142 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014143 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014145 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14146 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014147 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014149 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14150 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014151 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014153 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014155 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14156 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014157 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_INT4_MI2S_RX,
14159 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14160 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014161};
14162
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014163static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
14164 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14165 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14166 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
14167 msm_routing_put_port_mixer),
14168 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14169 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14170 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14171 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014172 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14173 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14174 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14175 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014176 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14177 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14178 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14179 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014180};
14181
14182static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
14183 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14184 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14186 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014187 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14188 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14189 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14190 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014191 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080014192 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014193 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14194 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014195 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14196 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14197 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14198 msm_routing_put_port_mixer),
14199
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014200};
14201
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014202static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014203 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14204 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014205 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014207 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14208 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014209 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014211 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14212 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014213 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014215 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14216 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014217 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014219 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14220 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014221 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014223 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014225 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014227 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14228 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014229 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014231 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14232 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014233 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014235 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14236 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014237 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014239 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14240 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014241 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014243 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14244 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014245 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014247 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14248 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014249 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014251 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014253 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014255 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14256 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014257 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014259 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14260 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014261 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014263 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014265 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014267 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14268 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014269 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014271 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014273 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014275 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
14276 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014277 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014279 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014281 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014283 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
14284 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014285 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014287 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
14288 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014289 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14290 msm_routing_put_port_mixer),
14291 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14292 MSM_BACKEND_DAI_SLIMBUS_0_RX,
14293 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053014294 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014295};
14296
14297static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014298 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014300 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014302 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14303 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014304 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014306 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14307 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014308 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014310 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14311 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014312 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014314 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14315 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014316 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
14317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014318 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14319 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014320 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14321 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014322};
14323
14324static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014325 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14326 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014327 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014329 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014331 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014333 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14334 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014335 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014337 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14338 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014339 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14340 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014341};
14342
14343static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014344 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014346 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014348 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14349 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014350 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014352 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14353 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014354 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14355 msm_routing_put_port_mixer),
14356};
14357
14358static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014359 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014361 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014363 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14364 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014365 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014367 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14368 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014369 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14370 msm_routing_put_port_mixer),
14371};
14372
Rohit Kumara5077932017-09-10 22:05:05 +053014373static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014376 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014378 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014380 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014382 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014384 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14385 msm_routing_put_port_mixer),
14386};
14387
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014388static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014389 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14390 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014391 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014393 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14394 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014395 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
14396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014397 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14398 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014399 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014401 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14402 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014403 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014405 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14406 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014407 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014409 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14410 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014411 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14412 msm_routing_put_port_mixer),
14413};
14414
14415static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014416 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14417 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014418 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014420 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14421 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014422 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014424 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14425 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014426 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014428 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14429 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014430 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014432 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14433 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014434 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14435 msm_routing_put_port_mixer),
14436};
14437
14438static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014439 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14440 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014441 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014443 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14444 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014445 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014447 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14448 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014449 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014451 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14452 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014453 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014455 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14456 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014457 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014459 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014461 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014463 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14464 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014465 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014467 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014469 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014471 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14472 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014473 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014475 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014477 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014479 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014481 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014483 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14484 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014485 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14486 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014487 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14489 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14490 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014491};
14492
14493static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014494 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14495 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014496 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014498 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14499 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014500 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14501 msm_routing_put_port_mixer),
14502};
14503
14504static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014505 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014507 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014509 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14510 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014511 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14512 msm_routing_put_port_mixer),
14513};
14514
14515
14516static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014517 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14518 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014519 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14520 msm_routing_put_port_mixer),
14521};
14522
14523static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014524 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14525 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014526 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14527 msm_routing_put_port_mixer),
14528};
14529
Karthikeyan Mani57550082018-05-03 18:43:58 -070014530static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14531 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14532 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14533 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14534 msm_routing_put_port_mixer),
14535};
14536
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014537static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014538 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14539 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014540 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14541 msm_routing_put_port_mixer),
14542};
14543
14544static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014545 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14546 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014547 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014549 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14550 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014551 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14552 msm_routing_put_port_mixer),
14553};
14554
14555static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014556 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14557 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014558 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014562 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014564 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14565 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014566 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014568 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014570 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014572 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014574 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014576 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14577 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014578 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014582 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014584 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014586 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014588 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014590 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014592 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14593 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014594 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14595 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014596};
14597
14598static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014599 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14600 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014601 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14602 msm_routing_put_port_mixer),
14603};
14604
14605static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014606 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14607 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014608 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014610 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14611 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014612 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014614 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14615 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014616 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014618 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014620 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014622 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14623 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014624 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014626 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14627 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014628 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014630 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14631 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014632 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014634 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14635 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014636 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014638 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14639 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014640 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14641 msm_routing_put_port_mixer),
14642};
14643
Rohit Kumara5077932017-09-10 22:05:05 +053014644static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014645 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14646 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014647 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014649 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14650 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014651 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014653 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14654 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014655 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014657 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14658 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014659 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014661 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14662 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014663 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014665 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14666 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014667 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014669 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14670 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014671 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14672 msm_routing_put_port_mixer),
14673};
14674
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014675static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014676 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14677 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014678 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14679 msm_routing_get_port_mixer,
14680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014683 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14684 msm_routing_get_port_mixer,
14685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014686 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014688 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14689 msm_routing_get_port_mixer,
14690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014691 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14692 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014693 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14694 msm_routing_get_port_mixer,
14695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014696 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14697 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014698 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14699 msm_routing_get_port_mixer,
14700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014703 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14704 msm_routing_get_port_mixer,
14705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014706 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014708 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14709 msm_routing_get_port_mixer,
14710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014711 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014713 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14714 msm_routing_get_port_mixer,
14715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014716 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14717 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014718 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14719 msm_routing_get_port_mixer,
14720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14724 msm_routing_get_port_mixer,
14725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014728 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14729 msm_routing_get_port_mixer,
14730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014731 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014733 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14734 msm_routing_get_port_mixer,
14735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14737 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014738 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14739 msm_routing_get_port_mixer,
14740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014743 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14744 msm_routing_get_port_mixer,
14745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014746 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014748 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14749 msm_routing_get_port_mixer,
14750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014751 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14752 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014753 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14754 msm_routing_get_port_mixer,
14755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014756 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014758 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14759 msm_routing_get_port_mixer,
14760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014763 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14764 msm_routing_get_port_mixer,
14765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014766 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014768 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14769 msm_routing_get_port_mixer,
14770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014771 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14772 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014773 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14774 msm_routing_get_port_mixer,
14775 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014776};
14777
14778static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014779 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14780 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014781 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14782 msm_routing_get_port_mixer,
14783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014784 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14785 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014786 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14787 msm_routing_get_port_mixer,
14788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014789 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014791 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14792 msm_routing_get_port_mixer,
14793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014794 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14795 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014796 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14797 msm_routing_get_port_mixer,
14798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014799 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14800 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014801 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14802 msm_routing_get_port_mixer,
14803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014804 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014806 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14807 msm_routing_get_port_mixer,
14808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014809 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014811 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14812 msm_routing_get_port_mixer,
14813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014814 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14815 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014816 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14817 msm_routing_get_port_mixer,
14818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014819 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14820 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14822 msm_routing_get_port_mixer,
14823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014824 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014826 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14827 msm_routing_get_port_mixer,
14828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014831 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14832 msm_routing_get_port_mixer,
14833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14837 msm_routing_get_port_mixer,
14838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014839 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14840 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014841 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14842 msm_routing_get_port_mixer,
14843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14845 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014846 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14847 msm_routing_get_port_mixer,
14848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014849 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014851 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14852 msm_routing_get_port_mixer,
14853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014854 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14855 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014856 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14857 msm_routing_get_port_mixer,
14858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014859 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014861 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14862 msm_routing_get_port_mixer,
14863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014864 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014866 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14867 msm_routing_get_port_mixer,
14868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014869 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014871 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14872 msm_routing_get_port_mixer,
14873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014874 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014876 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14877 msm_routing_get_port_mixer,
14878 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014879};
14880
14881static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014882 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14883 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014884 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14885 msm_routing_get_port_mixer,
14886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014887 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14888 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014889 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14890 msm_routing_get_port_mixer,
14891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014892 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014894 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14895 msm_routing_get_port_mixer,
14896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014897 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14898 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014899 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14900 msm_routing_get_port_mixer,
14901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014902 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14903 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014904 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14905 msm_routing_get_port_mixer,
14906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014907 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014909 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14910 msm_routing_get_port_mixer,
14911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014912 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014914 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14915 msm_routing_get_port_mixer,
14916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014917 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14918 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014919 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14920 msm_routing_get_port_mixer,
14921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14925 msm_routing_get_port_mixer,
14926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014927 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014929 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14930 msm_routing_get_port_mixer,
14931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014932 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014934 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14935 msm_routing_get_port_mixer,
14936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014939 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14940 msm_routing_get_port_mixer,
14941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014944 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14945 msm_routing_get_port_mixer,
14946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014947 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014949 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14950 msm_routing_get_port_mixer,
14951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014952 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014954 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14955 msm_routing_get_port_mixer,
14956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014957 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14958 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014959 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14960 msm_routing_get_port_mixer,
14961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014962 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14963 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014964 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14965 msm_routing_get_port_mixer,
14966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014967 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014969 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14970 msm_routing_get_port_mixer,
14971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014974 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14975 msm_routing_get_port_mixer,
14976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014977 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14978 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014979 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14980 msm_routing_get_port_mixer,
14981 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014982};
14983
14984static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014985 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14986 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014987 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14988 msm_routing_get_port_mixer,
14989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014990 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014992 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14993 msm_routing_get_port_mixer,
14994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014995 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14996 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014997 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14998 msm_routing_get_port_mixer,
14999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015000 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15001 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015002 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15003 msm_routing_get_port_mixer,
15004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015005 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15006 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015007 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15008 msm_routing_get_port_mixer,
15009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015010 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015012 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15013 msm_routing_get_port_mixer,
15014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015015 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015017 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15018 msm_routing_get_port_mixer,
15019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015020 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015022 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15023 msm_routing_get_port_mixer,
15024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015025 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
15026 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015027 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
15028 msm_routing_get_port_mixer,
15029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015030 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
15031 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
15033 msm_routing_get_port_mixer,
15034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015035 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015037 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
15038 msm_routing_get_port_mixer,
15039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015040 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
15041 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015042 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
15043 msm_routing_get_port_mixer,
15044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015045 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15046 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015047 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15048 msm_routing_get_port_mixer,
15049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015050 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15051 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015052 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15053 msm_routing_get_port_mixer,
15054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015055 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015057 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15058 msm_routing_get_port_mixer,
15059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015060 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15061 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015062 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15063 msm_routing_get_port_mixer,
15064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015065 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15066 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015067 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15068 msm_routing_get_port_mixer,
15069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015070 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015072 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15073 msm_routing_get_port_mixer,
15074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015075 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015077 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15078 msm_routing_get_port_mixer,
15079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015080 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15081 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015082 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15083 msm_routing_get_port_mixer,
15084 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015085};
15086
15087static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015088 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15089 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015090 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15091 msm_routing_get_port_mixer,
15092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015093 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15094 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015095 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15096 msm_routing_get_port_mixer,
15097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015098 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15099 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015100 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15101 msm_routing_get_port_mixer,
15102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015103 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015105 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15106 msm_routing_get_port_mixer,
15107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015108 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15109 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015110 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15111 msm_routing_get_port_mixer,
15112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015113 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15114 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015115 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15116 msm_routing_get_port_mixer,
15117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015118 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015120 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15121 msm_routing_get_port_mixer,
15122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015123 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15124 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015125 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15126 msm_routing_get_port_mixer,
15127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015128 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15129 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015130 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15131 msm_routing_get_port_mixer,
15132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015133 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015135 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15136 msm_routing_get_port_mixer,
15137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015138 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015140 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15141 msm_routing_get_port_mixer,
15142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015143 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15144 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015145 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15146 msm_routing_get_port_mixer,
15147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015148 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015150 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15151 msm_routing_get_port_mixer,
15152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015153 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15154 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015155 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15156 msm_routing_get_port_mixer,
15157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015158 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015160 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15161 msm_routing_get_port_mixer,
15162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015163 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15164 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015165 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15166 msm_routing_get_port_mixer,
15167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015168 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15169 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015170 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15171 msm_routing_get_port_mixer,
15172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015173 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15174 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015175 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15176 msm_routing_get_port_mixer,
15177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015178 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015180 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15181 msm_routing_get_port_mixer,
15182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015183 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015185 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15186 msm_routing_get_port_mixer,
15187 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015188};
15189
15190static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015191 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15192 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015193 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15194 msm_routing_get_port_mixer,
15195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015196 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15197 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015198 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15199 msm_routing_get_port_mixer,
15200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015201 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15202 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015203 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15204 msm_routing_get_port_mixer,
15205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015206 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15207 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015208 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15209 msm_routing_get_port_mixer,
15210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015211 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15212 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015213 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15214 msm_routing_get_port_mixer,
15215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015216 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15217 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015218 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15219 msm_routing_get_port_mixer,
15220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015221 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015223 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15224 msm_routing_get_port_mixer,
15225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015226 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15227 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015228 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15229 msm_routing_get_port_mixer,
15230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015231 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15232 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015233 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15234 msm_routing_get_port_mixer,
15235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015236 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15237 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015238 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15239 msm_routing_get_port_mixer,
15240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015241 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015243 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15244 msm_routing_get_port_mixer,
15245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015246 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15247 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015248 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15249 msm_routing_get_port_mixer,
15250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015251 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15252 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015253 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15254 msm_routing_get_port_mixer,
15255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015256 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015258 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15259 msm_routing_get_port_mixer,
15260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015261 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15262 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015263 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15264 msm_routing_get_port_mixer,
15265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015266 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15267 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015268 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15269 msm_routing_get_port_mixer,
15270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015271 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15272 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015273 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15274 msm_routing_get_port_mixer,
15275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015276 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015278 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15279 msm_routing_get_port_mixer,
15280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015281 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15282 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015283 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15284 msm_routing_get_port_mixer,
15285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015286 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15287 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015288 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15289 msm_routing_get_port_mixer,
15290 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015291};
15292
15293static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015294 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15295 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015296 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15297 msm_routing_get_port_mixer,
15298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015299 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15300 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015301 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15302 msm_routing_get_port_mixer,
15303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015304 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15305 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015306 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15307 msm_routing_get_port_mixer,
15308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015309 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15310 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015311 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15312 msm_routing_get_port_mixer,
15313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015314 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15315 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015316 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15317 msm_routing_get_port_mixer,
15318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015319 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15320 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015321 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15322 msm_routing_get_port_mixer,
15323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015324 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15325 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015326 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15327 msm_routing_get_port_mixer,
15328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015329 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15330 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015331 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15332 msm_routing_get_port_mixer,
15333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015334 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15335 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015336 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15337 msm_routing_get_port_mixer,
15338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015339 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15340 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015341 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15342 msm_routing_get_port_mixer,
15343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015344 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015346 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15347 msm_routing_get_port_mixer,
15348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015349 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15350 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015351 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15352 msm_routing_get_port_mixer,
15353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015354 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15355 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015356 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15357 msm_routing_get_port_mixer,
15358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015359 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15360 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015361 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15362 msm_routing_get_port_mixer,
15363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015364 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15365 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015366 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15367 msm_routing_get_port_mixer,
15368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015369 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15370 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015371 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15372 msm_routing_get_port_mixer,
15373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015374 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15375 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015376 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15377 msm_routing_get_port_mixer,
15378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015379 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15380 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015381 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15382 msm_routing_get_port_mixer,
15383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015384 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15385 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015386 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15387 msm_routing_get_port_mixer,
15388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015389 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015391 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15392 msm_routing_get_port_mixer,
15393 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015394};
15395
15396static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015397 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015399 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15400 msm_routing_get_port_mixer,
15401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015402 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15403 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015404 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15405 msm_routing_get_port_mixer,
15406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015407 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15408 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015409 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15410 msm_routing_get_port_mixer,
15411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015412 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15413 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015414 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15415 msm_routing_get_port_mixer,
15416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015417 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15418 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015419 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15420 msm_routing_get_port_mixer,
15421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015422 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15423 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015424 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15425 msm_routing_get_port_mixer,
15426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015427 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15428 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015429 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15430 msm_routing_get_port_mixer,
15431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015432 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15433 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015434 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15435 msm_routing_get_port_mixer,
15436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015437 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15438 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015439 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15440 msm_routing_get_port_mixer,
15441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015442 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15443 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015444 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15445 msm_routing_get_port_mixer,
15446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015447 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15448 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015449 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15450 msm_routing_get_port_mixer,
15451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015452 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15453 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015454 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15455 msm_routing_get_port_mixer,
15456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015457 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15458 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015459 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15460 msm_routing_get_port_mixer,
15461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015462 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15463 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015464 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15465 msm_routing_get_port_mixer,
15466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015467 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15468 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015469 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15470 msm_routing_get_port_mixer,
15471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015472 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15473 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015474 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15475 msm_routing_get_port_mixer,
15476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015477 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15478 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015479 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15480 msm_routing_get_port_mixer,
15481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015482 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15483 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015484 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15485 msm_routing_get_port_mixer,
15486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015487 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15488 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015489 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15490 msm_routing_get_port_mixer,
15491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015492 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15493 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015494 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15495 msm_routing_get_port_mixer,
15496 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015497};
15498
Derek Chenfdcc0982018-10-02 15:14:03 -070015499static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15500 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15501 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15502 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15503 msm_routing_get_port_mixer,
15504 msm_routing_put_port_mixer),
15505};
15506
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015507static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015508 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15509 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015510 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15511 msm_routing_get_port_mixer,
15512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015513 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15514 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015515 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15516 msm_routing_get_port_mixer,
15517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015518 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015520 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15521 msm_routing_get_port_mixer,
15522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015523 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15524 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015525 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15526 msm_routing_get_port_mixer,
15527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015528 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15529 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015530 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15531 msm_routing_get_port_mixer,
15532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015533 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15534 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015535 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15536 msm_routing_get_port_mixer,
15537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015538 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015540 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15541 msm_routing_get_port_mixer,
15542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015543 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15544 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015545 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15546 msm_routing_get_port_mixer,
15547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015548 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15549 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015550 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15551 msm_routing_get_port_mixer,
15552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015553 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015555 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15556 msm_routing_get_port_mixer,
15557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015558 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015560 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15561 msm_routing_get_port_mixer,
15562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015563 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015565 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15566 msm_routing_get_port_mixer,
15567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015570 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15571 msm_routing_get_port_mixer,
15572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015573 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015575 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15576 msm_routing_get_port_mixer,
15577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015578 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15579 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015580 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15581 msm_routing_get_port_mixer,
15582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15586 msm_routing_get_port_mixer,
15587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015588 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015590 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15591 msm_routing_get_port_mixer,
15592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015593 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15594 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015595 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15596 msm_routing_get_port_mixer,
15597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015598 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15599 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015600 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15601 msm_routing_get_port_mixer,
15602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015605 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15606 msm_routing_get_port_mixer,
15607 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015608};
15609
15610static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015613 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15614 msm_routing_get_port_mixer,
15615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015616 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15617 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015618 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15619 msm_routing_get_port_mixer,
15620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015621 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15622 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015623 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15624 msm_routing_get_port_mixer,
15625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015626 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015628 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15629 msm_routing_get_port_mixer,
15630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015631 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15632 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015633 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15634 msm_routing_get_port_mixer,
15635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015636 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15637 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015638 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15639 msm_routing_get_port_mixer,
15640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015641 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015643 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15644 msm_routing_get_port_mixer,
15645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015646 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15647 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015648 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15649 msm_routing_get_port_mixer,
15650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015651 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15652 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015653 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15654 msm_routing_get_port_mixer,
15655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015658 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15659 msm_routing_get_port_mixer,
15660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015663 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15664 msm_routing_get_port_mixer,
15665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015666 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15667 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015668 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15669 msm_routing_get_port_mixer,
15670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15672 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15674 msm_routing_get_port_mixer,
15675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015678 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15679 msm_routing_get_port_mixer,
15680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015681 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15682 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015683 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15684 msm_routing_get_port_mixer,
15685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15687 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15689 msm_routing_get_port_mixer,
15690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015691 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15692 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015693 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15694 msm_routing_get_port_mixer,
15695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015696 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15697 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015698 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15699 msm_routing_get_port_mixer,
15700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015701 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15702 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015703 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15704 msm_routing_get_port_mixer,
15705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15707 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015708 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15709 msm_routing_get_port_mixer,
15710 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015711};
15712
15713static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015714 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15715 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015716 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15717 msm_routing_get_port_mixer,
15718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015719 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15720 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015721 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15722 msm_routing_get_port_mixer,
15723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015724 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15725 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015726 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15727 msm_routing_get_port_mixer,
15728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015729 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15730 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015731 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15732 msm_routing_get_port_mixer,
15733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015734 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15735 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015736 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15737 msm_routing_get_port_mixer,
15738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015739 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15740 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015741 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15742 msm_routing_get_port_mixer,
15743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015744 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15745 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015746 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15747 msm_routing_get_port_mixer,
15748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15750 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015751 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15752 msm_routing_get_port_mixer,
15753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015754 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015756 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15757 msm_routing_get_port_mixer,
15758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015759 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015761 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15762 msm_routing_get_port_mixer,
15763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015766 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15767 msm_routing_get_port_mixer,
15768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015769 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015771 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15772 msm_routing_get_port_mixer,
15773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015774 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15775 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015776 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15777 msm_routing_get_port_mixer,
15778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15782 msm_routing_get_port_mixer,
15783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015784 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15785 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015786 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15787 msm_routing_get_port_mixer,
15788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015789 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15790 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015791 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15792 msm_routing_get_port_mixer,
15793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015794 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15795 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015796 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15797 msm_routing_get_port_mixer,
15798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015801 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15802 msm_routing_get_port_mixer,
15803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015804 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015806 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15807 msm_routing_get_port_mixer,
15808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015809 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15810 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015811 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15812 msm_routing_get_port_mixer,
15813 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015814};
15815
15816static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015817 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15818 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015819 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15820 msm_routing_get_port_mixer,
15821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015822 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15823 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015824 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15825 msm_routing_get_port_mixer,
15826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015827 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15828 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015829 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15830 msm_routing_get_port_mixer,
15831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015832 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15833 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015834 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15835 msm_routing_get_port_mixer,
15836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015837 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15838 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015839 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15840 msm_routing_get_port_mixer,
15841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015842 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015844 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15845 msm_routing_get_port_mixer,
15846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015847 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015849 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15850 msm_routing_get_port_mixer,
15851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015852 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15853 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015854 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15855 msm_routing_get_port_mixer,
15856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15858 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015859 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15860 msm_routing_get_port_mixer,
15861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015862 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15865 msm_routing_get_port_mixer,
15866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015867 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015869 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15870 msm_routing_get_port_mixer,
15871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015872 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15873 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015874 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15875 msm_routing_get_port_mixer,
15876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015877 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15880 msm_routing_get_port_mixer,
15881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015882 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015884 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15885 msm_routing_get_port_mixer,
15886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015887 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15888 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015889 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15890 msm_routing_get_port_mixer,
15891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015892 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15893 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015894 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15895 msm_routing_get_port_mixer,
15896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015897 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015899 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15900 msm_routing_get_port_mixer,
15901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015904 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15905 msm_routing_get_port_mixer,
15906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015907 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015909 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15910 msm_routing_get_port_mixer,
15911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015914 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15915 msm_routing_get_port_mixer,
15916 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015917};
15918
15919static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015920 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15921 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015922 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15923 msm_routing_get_port_mixer,
15924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015925 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15926 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015927 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15928 msm_routing_get_port_mixer,
15929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015930 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015932 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15933 msm_routing_get_port_mixer,
15934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015935 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15936 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015937 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15938 msm_routing_get_port_mixer,
15939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015942 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15943 msm_routing_get_port_mixer,
15944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015945 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015947 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15948 msm_routing_get_port_mixer,
15949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015950 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15951 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015952 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15953 msm_routing_get_port_mixer,
15954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015955 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015957 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15958 msm_routing_get_port_mixer,
15959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015960 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015962 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15963 msm_routing_get_port_mixer,
15964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015965 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015967 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15968 msm_routing_get_port_mixer,
15969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015970 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015972 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15973 msm_routing_get_port_mixer,
15974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015975 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015977 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15978 msm_routing_get_port_mixer,
15979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015982 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15983 msm_routing_get_port_mixer,
15984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015985 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015987 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15988 msm_routing_get_port_mixer,
15989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015990 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15991 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015992 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15993 msm_routing_get_port_mixer,
15994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015995 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015997 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15998 msm_routing_get_port_mixer,
15999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016000 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016002 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16003 msm_routing_get_port_mixer,
16004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016005 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016007 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16008 msm_routing_get_port_mixer,
16009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016010 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16011 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016012 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16013 msm_routing_get_port_mixer,
16014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016015 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016017 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16018 msm_routing_get_port_mixer,
16019 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016020};
16021
16022static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016023 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016025 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16026 msm_routing_get_port_mixer,
16027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016028 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016030 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16031 msm_routing_get_port_mixer,
16032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016033 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16034 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016035 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16036 msm_routing_get_port_mixer,
16037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016038 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16039 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016040 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16041 msm_routing_get_port_mixer,
16042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016043 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016045 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16046 msm_routing_get_port_mixer,
16047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016048 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016050 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16051 msm_routing_get_port_mixer,
16052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016053 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16054 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016055 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16056 msm_routing_get_port_mixer,
16057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016058 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016060 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16061 msm_routing_get_port_mixer,
16062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016063 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016065 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16066 msm_routing_get_port_mixer,
16067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016068 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016070 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16071 msm_routing_get_port_mixer,
16072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016073 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016075 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16076 msm_routing_get_port_mixer,
16077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016078 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016080 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16081 msm_routing_get_port_mixer,
16082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016083 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016085 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16086 msm_routing_get_port_mixer,
16087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016088 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16089 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016090 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16091 msm_routing_get_port_mixer,
16092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016093 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016095 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16096 msm_routing_get_port_mixer,
16097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016098 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016100 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16101 msm_routing_get_port_mixer,
16102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016103 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16104 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016105 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16106 msm_routing_get_port_mixer,
16107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016108 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016110 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16111 msm_routing_get_port_mixer,
16112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016113 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016115 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16116 msm_routing_get_port_mixer,
16117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016120 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16121 msm_routing_get_port_mixer,
16122 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016123};
16124
16125static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16127 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016128 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16129 msm_routing_get_port_mixer,
16130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016131 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16132 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016133 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16134 msm_routing_get_port_mixer,
16135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016136 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016138 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16139 msm_routing_get_port_mixer,
16140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016141 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16142 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016143 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16144 msm_routing_get_port_mixer,
16145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016146 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16147 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016148 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16149 msm_routing_get_port_mixer,
16150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016151 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16152 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016153 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16154 msm_routing_get_port_mixer,
16155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016156 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016158 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16159 msm_routing_get_port_mixer,
16160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016163 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16164 msm_routing_get_port_mixer,
16165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016166 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016168 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16169 msm_routing_get_port_mixer,
16170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016171 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016173 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16174 msm_routing_get_port_mixer,
16175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016176 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016178 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16179 msm_routing_get_port_mixer,
16180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016181 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016183 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16184 msm_routing_get_port_mixer,
16185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016186 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16187 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016188 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16189 msm_routing_get_port_mixer,
16190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016191 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016193 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16194 msm_routing_get_port_mixer,
16195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016198 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16199 msm_routing_get_port_mixer,
16200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016201 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16202 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016203 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16204 msm_routing_get_port_mixer,
16205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016206 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016208 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16209 msm_routing_get_port_mixer,
16210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016211 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16212 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016213 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16214 msm_routing_get_port_mixer,
16215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016218 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16219 msm_routing_get_port_mixer,
16220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016221 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16222 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016223 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16224 msm_routing_get_port_mixer,
16225 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016226};
16227
16228static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016229 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16230 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016231 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16232 msm_routing_get_port_mixer,
16233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016234 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016236 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16237 msm_routing_get_port_mixer,
16238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016239 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016241 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16242 msm_routing_get_port_mixer,
16243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016244 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16245 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016246 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16247 msm_routing_get_port_mixer,
16248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016249 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16250 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016251 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16252 msm_routing_get_port_mixer,
16253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016254 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016256 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16257 msm_routing_get_port_mixer,
16258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016259 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16260 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016261 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16262 msm_routing_get_port_mixer,
16263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016264 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16265 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016266 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16267 msm_routing_get_port_mixer,
16268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016269 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016271 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16272 msm_routing_get_port_mixer,
16273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016274 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016276 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16277 msm_routing_get_port_mixer,
16278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016279 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016281 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16282 msm_routing_get_port_mixer,
16283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016284 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16285 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016286 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16287 msm_routing_get_port_mixer,
16288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016289 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16290 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016291 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16292 msm_routing_get_port_mixer,
16293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016294 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016296 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16297 msm_routing_get_port_mixer,
16298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016299 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16300 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016301 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16302 msm_routing_get_port_mixer,
16303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016304 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016306 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16307 msm_routing_get_port_mixer,
16308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016309 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16310 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016311 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16312 msm_routing_get_port_mixer,
16313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016314 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016316 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16317 msm_routing_get_port_mixer,
16318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016319 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016321 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16322 msm_routing_get_port_mixer,
16323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016324 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16325 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016326 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16327 msm_routing_get_port_mixer,
16328 msm_routing_put_port_mixer),
16329};
16330
16331static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016332 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16333 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016334 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16335 msm_routing_get_port_mixer,
16336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016337 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016339 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16340 msm_routing_get_port_mixer,
16341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016342 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16343 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016344 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16345 msm_routing_get_port_mixer,
16346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016347 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16348 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016349 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16350 msm_routing_get_port_mixer,
16351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016352 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16353 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016354 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16355 msm_routing_get_port_mixer,
16356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016357 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16358 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016359 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16360 msm_routing_get_port_mixer,
16361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016362 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16363 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016364 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16365 msm_routing_get_port_mixer,
16366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016367 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016369 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16370 msm_routing_get_port_mixer,
16371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016372 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16373 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016374 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16375 msm_routing_get_port_mixer,
16376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016377 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16378 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016379 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16380 msm_routing_get_port_mixer,
16381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016382 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16383 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016384 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16385 msm_routing_get_port_mixer,
16386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016387 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016389 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16390 msm_routing_get_port_mixer,
16391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016392 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16393 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016394 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16395 msm_routing_get_port_mixer,
16396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016397 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16398 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016399 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16400 msm_routing_get_port_mixer,
16401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016402 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016404 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16405 msm_routing_get_port_mixer,
16406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016407 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016409 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16410 msm_routing_get_port_mixer,
16411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016412 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16413 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016414 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16415 msm_routing_get_port_mixer,
16416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016417 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016419 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16420 msm_routing_get_port_mixer,
16421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016422 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16423 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016424 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16425 msm_routing_get_port_mixer,
16426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016427 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016429 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16430 msm_routing_get_port_mixer,
16431 msm_routing_put_port_mixer),
16432};
16433
16434static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016435 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16436 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016437 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16438 msm_routing_get_port_mixer,
16439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016440 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16441 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016442 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16443 msm_routing_get_port_mixer,
16444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016445 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16446 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016447 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16448 msm_routing_get_port_mixer,
16449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016450 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16451 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016452 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16453 msm_routing_get_port_mixer,
16454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016455 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16456 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016457 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16458 msm_routing_get_port_mixer,
16459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016460 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16461 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016462 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16463 msm_routing_get_port_mixer,
16464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016465 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16466 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016467 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16468 msm_routing_get_port_mixer,
16469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016470 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16471 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016472 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16473 msm_routing_get_port_mixer,
16474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016475 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016477 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16478 msm_routing_get_port_mixer,
16479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016480 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16481 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016482 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16483 msm_routing_get_port_mixer,
16484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016485 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16486 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016487 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16488 msm_routing_get_port_mixer,
16489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016490 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016492 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16493 msm_routing_get_port_mixer,
16494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016495 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16496 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016497 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16498 msm_routing_get_port_mixer,
16499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016500 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016502 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16503 msm_routing_get_port_mixer,
16504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016505 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16506 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016507 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16508 msm_routing_get_port_mixer,
16509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016510 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016512 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16513 msm_routing_get_port_mixer,
16514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016515 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16516 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016517 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16518 msm_routing_get_port_mixer,
16519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016520 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16521 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016522 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16523 msm_routing_get_port_mixer,
16524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016525 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016527 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16528 msm_routing_get_port_mixer,
16529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016530 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16531 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016532 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16533 msm_routing_get_port_mixer,
16534 msm_routing_put_port_mixer),
16535};
16536
16537static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016538 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16539 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016540 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16541 msm_routing_get_port_mixer,
16542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016543 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16544 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016545 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16546 msm_routing_get_port_mixer,
16547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016548 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16549 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016550 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16551 msm_routing_get_port_mixer,
16552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016553 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16554 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016555 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16556 msm_routing_get_port_mixer,
16557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016558 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16559 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016560 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16561 msm_routing_get_port_mixer,
16562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016563 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16564 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016565 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16566 msm_routing_get_port_mixer,
16567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016568 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16569 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016570 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16571 msm_routing_get_port_mixer,
16572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016573 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16574 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016575 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16576 msm_routing_get_port_mixer,
16577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016578 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16579 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016580 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16581 msm_routing_get_port_mixer,
16582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016583 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016585 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16586 msm_routing_get_port_mixer,
16587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016588 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16589 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016590 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16591 msm_routing_get_port_mixer,
16592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016593 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016595 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16596 msm_routing_get_port_mixer,
16597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016598 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016600 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16601 msm_routing_get_port_mixer,
16602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016603 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16604 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016605 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16606 msm_routing_get_port_mixer,
16607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016608 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16609 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016610 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16611 msm_routing_get_port_mixer,
16612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016613 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16614 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016615 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16616 msm_routing_get_port_mixer,
16617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016618 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016620 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16621 msm_routing_get_port_mixer,
16622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016623 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16624 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016625 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16626 msm_routing_get_port_mixer,
16627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016628 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16629 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016630 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16631 msm_routing_get_port_mixer,
16632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016633 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16634 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016635 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16636 msm_routing_get_port_mixer,
16637 msm_routing_put_port_mixer),
16638};
16639
16640static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016641 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16642 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016643 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16644 msm_routing_get_port_mixer,
16645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016646 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16647 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016648 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16649 msm_routing_get_port_mixer,
16650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016651 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16652 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016653 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16654 msm_routing_get_port_mixer,
16655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016656 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16657 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016658 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16659 msm_routing_get_port_mixer,
16660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016661 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16662 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016663 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16664 msm_routing_get_port_mixer,
16665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016666 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16667 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016668 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16669 msm_routing_get_port_mixer,
16670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016671 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16672 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016673 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16674 msm_routing_get_port_mixer,
16675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016676 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16677 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016678 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16679 msm_routing_get_port_mixer,
16680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016681 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16682 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016683 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16684 msm_routing_get_port_mixer,
16685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016686 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16687 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016688 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16689 msm_routing_get_port_mixer,
16690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016691 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16692 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016693 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16694 msm_routing_get_port_mixer,
16695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016696 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16697 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016698 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16699 msm_routing_get_port_mixer,
16700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016701 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16702 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016703 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16704 msm_routing_get_port_mixer,
16705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016706 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16707 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016708 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16709 msm_routing_get_port_mixer,
16710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016711 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16712 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016713 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16714 msm_routing_get_port_mixer,
16715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016716 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16717 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016718 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16719 msm_routing_get_port_mixer,
16720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016721 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16722 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016723 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16724 msm_routing_get_port_mixer,
16725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016726 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16727 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016728 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16729 msm_routing_get_port_mixer,
16730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016731 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16732 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016733 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16734 msm_routing_get_port_mixer,
16735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016736 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16737 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016738 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16739 msm_routing_get_port_mixer,
16740 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016741};
16742
16743static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016744 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16745 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016746 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016748 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16749 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016750 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016752 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16753 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016754 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016756 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16757 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016758 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016760 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16761 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016762 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016764 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16765 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016766 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016768 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16769 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016770 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16771 msm_routing_put_port_mixer),
16772};
16773
16774static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016775 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16776 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016777 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
16780 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016781 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
16784 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016785 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
16788 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016789 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
16792 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016793 MSM_BACKEND_DAI_QUINARY_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("SLIM_0_TX", SND_SOC_NOPM,
16796 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016797 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016799 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16800 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016801 MSM_BACKEND_DAI_INT_FM_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("SLIM_8_TX", SND_SOC_NOPM,
16804 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016805 MSM_BACKEND_DAI_SLIMBUS_8_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16808 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016809 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16810 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016811};
16812
16813static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016814 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16815 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016816 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16817 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016818 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16819 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016820 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16821 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016822 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16823 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016824 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16825 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016826 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16827 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016828 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16829 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016830 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16831 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016832 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16833 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016834 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16835 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016836 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16837 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016838 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16839 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016840 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16841 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016842 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16843 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016844 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16845 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016846 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16847 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16848 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16849 msm_routing_put_listen_mixer),
16850 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16851 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16852 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16853 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016854 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16855 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16856 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16857 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016858 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16859 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16860 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16861 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016862 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16863 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16864 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16865 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016866};
16867
16868static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016869 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16870 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016871 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16872 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016873 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16874 SND_SOC_NOPM,
16875 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016876 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16877 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016878 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16879 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016880 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16881 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016882 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16883 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016884 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16885 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016886 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16887 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016888 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16889 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016890 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16891 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016892 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16893 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016894 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16895 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016896 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16897 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016898 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16899 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016900 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16901 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016902 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16903 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16904 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16905 msm_routing_put_listen_mixer),
16906 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16907 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16908 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16909 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016910 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16911 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16912 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16913 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016914 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16915 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16916 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16917 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016918 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16919 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16920 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16921 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016922};
16923
16924static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016925 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16926 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016927 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16928 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016929 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16930 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016931 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16932 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016933 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16934 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016935 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16936 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016937 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16938 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016939 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16940 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016941 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16942 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016943 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16944 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016945 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16946 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016947 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16948 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016949 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16950 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016951 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16952 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016953 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16954 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016955 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16956 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016957 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16958 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16959 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16960 msm_routing_put_listen_mixer),
16961 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16962 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16963 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16964 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016965 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16966 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16967 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16968 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016969 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16970 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16971 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16972 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016973 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16974 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16975 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16976 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016977};
16978
16979static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016980 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16981 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016982 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16983 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016984 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16985 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016986 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16987 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016988 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16989 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016990 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16991 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016992 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16993 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016994 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16995 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016996 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16997 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016998 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16999 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017000 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17001 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017002 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17003 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017004 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17005 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017006 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17007 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017008 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17009 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017010 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17011 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017012 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17013 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17014 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17015 msm_routing_put_listen_mixer),
17016 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17017 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17018 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17019 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017020 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17021 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17022 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17023 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017024 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17025 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17026 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17027 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017028 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17029 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17030 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17031 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017032};
17033
17034static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017035 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17036 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017037 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17038 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017039 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17040 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017041 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17042 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017043 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17044 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017045 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17046 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017047 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17048 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017049 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17050 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017051 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17052 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017053 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17054 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017055 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17056 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017057 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17058 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017059 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17060 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017061 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17062 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017063 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17064 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017065 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17066 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017067 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17068 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17069 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17070 msm_routing_put_listen_mixer),
17071 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17072 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17073 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17074 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017075 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17076 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17077 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17078 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017079 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17080 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17081 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17082 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017083 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17084 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17085 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17086 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017087};
17088
17089static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017090 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17091 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017092 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17093 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017094 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17095 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017096 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17097 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017098 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17099 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017100 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17101 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017102 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17103 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017104 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17105 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017106 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17107 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017108 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17109 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017110 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17111 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017112 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17113 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017114 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17115 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017116 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17117 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017118 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17119 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017120 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17121 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017122 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17123 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17124 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17125 msm_routing_put_listen_mixer),
17126 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17127 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17128 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17129 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017130 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17131 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17132 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17133 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017134 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17135 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17136 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17137 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017138 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17139 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17140 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17141 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017142};
17143
17144static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017145 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17146 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017147 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17148 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017149 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17150 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017151 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17152 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017153 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17154 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017155 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17156 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017157 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17158 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017159 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17160 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017161 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17162 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017163 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17164 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017165 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17166 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017167 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17168 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017169 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17170 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017171 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17172 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017173 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17174 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017175 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17176 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017177 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17178 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17179 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17180 msm_routing_put_listen_mixer),
17181 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17182 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17183 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17184 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017185 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17186 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17187 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17188 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017189 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17190 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17191 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17192 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017193 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17194 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17195 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17196 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017197};
17198
17199static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017200 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17201 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017202 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17203 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017204 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17205 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017206 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17207 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017208 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17209 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017210 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17211 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017212 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17213 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017214 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17215 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017216 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17217 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017218 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17219 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017220 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17221 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017222 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17223 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017224 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17225 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017226 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17227 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017228 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17229 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017230 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17231 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017232 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17233 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17234 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17235 msm_routing_put_listen_mixer),
17236 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17237 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17238 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17239 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017240 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17241 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17242 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17243 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017244 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17245 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17246 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17247 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017248 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17249 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17250 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17251 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017252};
17253
17254static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
17255 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17256 0, 1, 0, msm_routing_get_switch_mixer,
17257 msm_routing_put_switch_mixer);
17258
17259static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
17260 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17261 0, 1, 0, msm_routing_get_switch_mixer,
17262 msm_routing_put_switch_mixer);
17263
17264static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
17265 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17266 0, 1, 0, msm_routing_get_switch_mixer,
17267 msm_routing_put_switch_mixer);
17268
17269static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
17270 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17271 0, 1, 0, msm_routing_get_switch_mixer,
17272 msm_routing_put_switch_mixer);
17273
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017274static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
17275 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17276 0, 1, 0, msm_routing_get_switch_mixer,
17277 msm_routing_put_switch_mixer);
17278
17279static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017280 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17281 0, 1, 0, msm_routing_get_switch_mixer,
17282 msm_routing_put_switch_mixer);
17283
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017284static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
17285 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17286 0, 1, 0, msm_routing_get_switch_mixer,
17287 msm_routing_put_switch_mixer);
17288
17289static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
17290 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17291 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
17292 msm_routing_put_fm_pcmrx_switch_mixer);
17293
17294static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
17295 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17296 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
17297 msm_routing_put_int0_mi2s_switch_mixer);
17298
17299static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
17300 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17301 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
17302 msm_routing_put_int4_mi2s_switch_mixer);
17303
17304static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
17305 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17306 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
17307 msm_routing_put_pri_mi2s_switch_mixer);
17308
17309static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
17310 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17311 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
17312 msm_routing_put_sec_mi2s_switch_mixer);
17313
17314static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
17315 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17316 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
17317 msm_routing_put_tert_mi2s_switch_mixer);
17318
17319static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
17320 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17321 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
17322 msm_routing_put_quat_mi2s_switch_mixer);
17323
Rohit Kumara5077932017-09-10 22:05:05 +053017324static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
17325 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17326 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
17327 msm_routing_put_quin_mi2s_switch_mixer);
17328
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017329static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
17330 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17331 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17332 msm_routing_put_hfp_switch_mixer);
17333
17334static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
17335 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17336 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17337 msm_routing_put_hfp_switch_mixer);
17338
17339static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
17340 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17341 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17342 msm_routing_put_hfp_switch_mixer);
17343
17344static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
17345 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17346 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17347 msm_routing_put_hfp_switch_mixer);
17348
17349static const struct snd_kcontrol_new usb_switch_mixer_controls =
17350 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17351 0, 1, 0, msm_routing_get_usb_switch_mixer,
17352 msm_routing_put_usb_switch_mixer);
17353
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080017354static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
17355 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17356 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
17357 msm_routing_a2dp_switch_mixer_put);
17358
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017359static const struct soc_enum lsm_port_enum =
17360 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
17361
17362static const char * const lsm_func_text[] = {
17363 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
17364};
17365static const struct soc_enum lsm_func_enum =
17366 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
17367
17368static const struct snd_kcontrol_new lsm_controls[] = {
17369 /* kcontrol of lsm_function */
17370 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17371 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17372 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17373 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17374 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17375 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17376 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17377 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17378 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17379 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17380 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17381 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17382 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17383 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17384 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17385 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17386 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17387 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017388 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17389 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017390 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17391 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017392 /* kcontrol of lsm_port */
17393 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
17394 msm_routing_lsm_port_get,
17395 msm_routing_lsm_port_put),
17396 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
17397 msm_routing_lsm_port_get,
17398 msm_routing_lsm_port_put),
17399 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
17400 msm_routing_lsm_port_get,
17401 msm_routing_lsm_port_put),
17402 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
17403 msm_routing_lsm_port_get,
17404 msm_routing_lsm_port_put),
17405 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
17406 msm_routing_lsm_port_get,
17407 msm_routing_lsm_port_put),
17408 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
17409 msm_routing_lsm_port_get,
17410 msm_routing_lsm_port_put),
17411 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
17412 msm_routing_lsm_port_get,
17413 msm_routing_lsm_port_put),
17414 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
17415 msm_routing_lsm_port_get,
17416 msm_routing_lsm_port_put),
17417};
17418
17419static const char * const aanc_slim_0_rx_text[] = {
17420 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
17421 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
17422};
17423
17424static const struct soc_enum aanc_slim_0_rx_enum =
17425 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
17426 aanc_slim_0_rx_text);
17427
17428static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
17429 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
17430 msm_routing_slim_0_rx_aanc_mux_get,
17431 msm_routing_slim_0_rx_aanc_mux_put)
17432};
17433
Sudheer Papothic07b37a2018-05-04 05:56:47 +053017434static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
17435 struct snd_ctl_elem_value *ucontrol)
17436{
17437 ucontrol->value.integer.value[0] = aanc_level;
17438
17439 return 0;
17440}
17441
17442static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17443 struct snd_ctl_elem_value *ucontrol)
17444{
17445 int ret = 0;
17446
17447 mutex_lock(&routing_lock);
17448 aanc_level = ucontrol->value.integer.value[0];
17449 pr_debug("%s: value: %ld\n",
17450 __func__, ucontrol->value.integer.value[0]);
17451 ret = afe_set_aanc_noise_level(aanc_level);
17452 mutex_unlock(&routing_lock);
17453
17454 return ret;
17455}
17456
17457static const struct snd_kcontrol_new aanc_noise_level[] = {
17458 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17459 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17460};
17461
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017462static int msm_routing_get_stereo_to_custom_stereo_control(
17463 struct snd_kcontrol *kcontrol,
17464 struct snd_ctl_elem_value *ucontrol)
17465{
17466 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17467 return 0;
17468}
17469
17470static int msm_routing_put_stereo_to_custom_stereo_control(
17471 struct snd_kcontrol *kcontrol,
17472 struct snd_ctl_elem_value *ucontrol)
17473{
17474 int flag = 0, i = 0, rc = 0, idx = 0;
17475 int be_index = 0, port_id, topo_id;
17476 unsigned int session_id = 0;
17477 uint16_t op_FL_ip_FL_weight = 0;
17478 uint16_t op_FL_ip_FR_weight = 0;
17479 uint16_t op_FR_ip_FL_weight = 0;
17480 uint16_t op_FR_ip_FR_weight = 0;
17481
17482 flag = ucontrol->value.integer.value[0];
17483 pr_debug("%s E flag %d\n", __func__, flag);
17484
17485 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17486 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17487 __func__, is_custom_stereo_on, flag);
17488 return 0;
17489 }
17490 is_custom_stereo_on = flag ? true : false;
17491 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17492 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17493 port_id = msm_bedais[be_index].port_id;
17494 if (!msm_bedais[be_index].active)
17495 continue;
17496 if ((port_id != SLIMBUS_0_RX) &&
17497 (port_id != RT_PROXY_PORT_001_RX) &&
17498 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17499 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17500 continue;
17501
17502 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17503 MSM_FRONTEND_DAI_MM_SIZE) {
17504 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17505 LEGACY_PCM_MODE)
17506 goto skip_send_custom_stereo;
17507 session_id =
17508 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17509 if (is_custom_stereo_on) {
17510 op_FL_ip_FL_weight =
17511 Q14_GAIN_ZERO_POINT_FIVE;
17512 op_FL_ip_FR_weight =
17513 Q14_GAIN_ZERO_POINT_FIVE;
17514 op_FR_ip_FL_weight =
17515 Q14_GAIN_ZERO_POINT_FIVE;
17516 op_FR_ip_FR_weight =
17517 Q14_GAIN_ZERO_POINT_FIVE;
17518 } else {
17519 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17520 op_FL_ip_FR_weight = 0;
17521 op_FR_ip_FL_weight = 0;
17522 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17523 }
17524 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17525 unsigned long copp =
17526 session_copp_map[i]
17527 [SESSION_TYPE_RX][be_index];
17528 if (!test_bit(idx, &copp))
17529 goto skip_send_custom_stereo;
17530 topo_id = adm_get_topology_for_port_copp_idx(
17531 msm_bedais[be_index].port_id, idx);
17532 if (topo_id < 0)
17533 pr_debug("%s:Err:custom stereo topo %d",
17534 __func__, topo_id);
17535 pr_debug("idx %d\n", idx);
17536 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17537 rc = msm_ds2_dap_set_custom_stereo_onoff
17538 (msm_bedais[be_index].port_id,
17539 idx, is_custom_stereo_on);
17540 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17541 rc = dolby_dap_set_custom_stereo_onoff(
17542 msm_bedais[be_index].port_id,
17543 idx, is_custom_stereo_on);
17544 else
17545 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17546 (msm_bedais[be_index].port_id,
17547 idx, session_id,
17548 op_FL_ip_FL_weight,
17549 op_FL_ip_FR_weight,
17550 op_FR_ip_FL_weight,
17551 op_FR_ip_FR_weight);
17552 if (rc < 0)
17553skip_send_custom_stereo:
17554 pr_err("%s: err setting custom stereo\n",
17555 __func__);
17556 }
17557
17558 }
17559 }
17560 return 0;
17561}
17562
17563static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17564 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17565 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17566 msm_routing_put_stereo_to_custom_stereo_control),
17567};
17568
17569static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17570 struct snd_ctl_elem_value *ucontrol)
17571{
17572 return 0;
17573}
17574
17575static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17576 struct snd_ctl_elem_value *ucontrol)
17577{
17578 int i = 0, j;
17579 int num_app_types = ucontrol->value.integer.value[i++];
17580
17581 pr_debug("%s\n", __func__);
17582
17583 memset(app_type_cfg, 0, MAX_APP_TYPES*
17584 sizeof(struct msm_pcm_routing_app_type_data));
17585 if (num_app_types > MAX_APP_TYPES) {
17586 pr_err("%s: number of app types exceed the max supported\n",
17587 __func__);
17588 return -EINVAL;
17589 }
17590 for (j = 0; j < num_app_types; j++) {
17591 app_type_cfg[j].app_type =
17592 ucontrol->value.integer.value[i++];
17593 app_type_cfg[j].sample_rate =
17594 ucontrol->value.integer.value[i++];
17595 app_type_cfg[j].bit_width =
17596 ucontrol->value.integer.value[i++];
17597 }
17598
17599 return 0;
17600}
17601
17602static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17603 struct snd_ctl_elem_value *ucontrol)
17604{
17605 int j, fe_id, be_id, port_type;
17606 int ret = 0;
17607 unsigned long copp;
17608 struct msm_pcm_routing_bdai_data *bedai;
17609 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17610 SESSION_TYPE_RX;
17611 int app_type = ucontrol->value.integer.value[1];
17612 int gain = (ucontrol->value.integer.value[2] +
17613 ucontrol->value.integer.value[3])/2;
17614
17615 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17616 MSM_AFE_PORT_TYPE_TX;
17617
17618 mutex_lock(&routing_lock);
17619 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17620 if (is_be_dai_extproc(be_id))
17621 continue;
17622
17623 bedai = &msm_bedais[be_id];
17624 if (afe_get_port_type(bedai->port_id) != port_type)
17625 continue;
17626
17627 if (!bedai->active)
17628 continue;
17629
17630 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17631 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17632 continue;
17633
17634 if (app_type !=
17635 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17636 continue;
17637
17638 copp = session_copp_map[fe_id][dir][be_id];
17639 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17640 if (!test_bit(j, &copp))
17641 continue;
17642 ret |= adm_set_volume(bedai->port_id, j, gain);
17643 }
17644 }
17645 }
17646 mutex_unlock(&routing_lock);
17647 return ret ? -EINVAL : 0;
17648}
17649
17650static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17651 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17652 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17653 msm_routing_put_app_type_cfg_control),
17654 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17655 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17656};
17657
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017658static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17659 struct snd_ctl_elem_value *ucontrol)
17660{
17661 int copp_idx, fe_id, be_id, port_type;
17662 int ret = 0;
17663 unsigned long copp;
17664 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017665 u8 *packed_params = NULL;
17666 struct param_hdr_v3 param_hdr;
17667 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17668 sizeof(uint32_t));
17669
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017670 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17671 SESSION_TYPE_RX;
17672 int app_type = ucontrol->value.integer.value[1];
17673 int module_id = ucontrol->value.integer.value[2];
17674 int instance_id = ucontrol->value.integer.value[3];
17675 int param_id = ucontrol->value.integer.value[4];
17676 int param_value = ucontrol->value.integer.value[5];
17677
17678 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17679 MSM_AFE_PORT_TYPE_TX;
17680 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17681 __func__, app_type, module_id,
17682 instance_id, param_id, param_value);
17683
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017684 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17685 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017686 return -ENOMEM;
17687
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017688 memset(&param_hdr, 0, sizeof(param_hdr));
17689 param_hdr.module_id = module_id;
17690 param_hdr.instance_id = instance_id;
17691 param_hdr.param_id = param_id;
17692 param_hdr.param_size = sizeof(uint32_t);
17693
17694 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017695
17696 mutex_lock(&routing_lock);
17697 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17698 if (is_be_dai_extproc(be_id))
17699 continue;
17700
17701 bedai = &msm_bedais[be_id];
17702 if (afe_get_port_type(bedai->port_id) != port_type)
17703 continue;
17704
17705 if (!bedai->active)
17706 continue;
17707
17708 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17709 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17710 continue;
17711
17712 if (app_type !=
17713 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17714 continue;
17715
17716 copp = session_copp_map[fe_id][dir][be_id];
17717 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17718 copp_idx++) {
17719 if (!test_bit(copp_idx, &copp))
17720 continue;
17721
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017722 ret = q6common_pack_pp_params(packed_params,
17723 &param_hdr,
17724 (u8 *) &param_value,
17725 &packed_param_size);
17726 if (ret) {
17727 pr_err("%s: Failed to pack params, error %d\n",
17728 __func__, ret);
17729 goto done;
17730 }
17731
17732 ret = adm_set_pp_params(bedai->port_id,
17733 copp_idx, NULL,
17734 packed_params,
17735 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017736 if (ret) {
17737 pr_err("%s: Setting param failed with err=%d\n",
17738 __func__, ret);
17739 ret = -EINVAL;
17740 goto done;
17741 }
17742 }
17743 }
17744 }
17745done:
17746 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017747 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017748 return ret;
17749}
17750
17751static const struct snd_kcontrol_new module_cfg_controls[] = {
17752 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17753 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17754};
17755
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017756static int msm_routing_get_lsm_app_type_cfg_control(
17757 struct snd_kcontrol *kcontrol,
17758 struct snd_ctl_elem_value *ucontrol)
17759{
Meng Wangadbca4f2018-10-29 14:30:13 +080017760 int shift = ((struct soc_multi_mixer_control *)
17761 kcontrol->private_value)->shift;
17762 int i = 0, j = 0;
17763
17764 ucontrol->value.integer.value[i] = num_app_cfg_types;
17765
17766 for (j = 0; j < num_app_cfg_types; ++j) {
17767 ucontrol->value.integer.value[++i] =
17768 lsm_app_type_cfg[j].app_type;
17769 ucontrol->value.integer.value[++i] =
17770 lsm_app_type_cfg[j].sample_rate;
17771 ucontrol->value.integer.value[++i] =
17772 lsm_app_type_cfg[j].bit_width;
17773 if (shift == 1)
17774 ucontrol->value.integer.value[++i] =
17775 lsm_app_type_cfg[j].num_out_channels;
17776 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017777 return 0;
17778}
17779
17780static int msm_routing_put_lsm_app_type_cfg_control(
17781 struct snd_kcontrol *kcontrol,
17782 struct snd_ctl_elem_value *ucontrol)
17783{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017784 int shift = ((struct soc_multi_mixer_control *)
17785 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017786 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017787
Meng Wangadbca4f2018-10-29 14:30:13 +080017788 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017789 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017790 sizeof(struct msm_pcm_routing_app_type_data));
17791
Meng Wangadbca4f2018-10-29 14:30:13 +080017792 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017793 pr_err("%s: number of app types exceed the max supported\n",
17794 __func__);
17795 return -EINVAL;
17796 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017797
Meng Wangadbca4f2018-10-29 14:30:13 +080017798 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017799 lsm_app_type_cfg[j].app_type =
17800 ucontrol->value.integer.value[i++];
17801 lsm_app_type_cfg[j].sample_rate =
17802 ucontrol->value.integer.value[i++];
17803 lsm_app_type_cfg[j].bit_width =
17804 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017805 /* Shift of 1 indicates this is V2 mixer control */
17806 if (shift == 1)
17807 lsm_app_type_cfg[j].num_out_channels =
17808 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017809 }
17810
17811 return 0;
17812}
17813
17814static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17815 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17816 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17817 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017818 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17819 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17820 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017821};
17822
17823static int msm_routing_get_use_ds1_or_ds2_control(
17824 struct snd_kcontrol *kcontrol,
17825 struct snd_ctl_elem_value *ucontrol)
17826{
17827 ucontrol->value.integer.value[0] = is_ds2_on;
17828 return 0;
17829}
17830
17831static int msm_routing_put_use_ds1_or_ds2_control(
17832 struct snd_kcontrol *kcontrol,
17833 struct snd_ctl_elem_value *ucontrol)
17834{
17835 is_ds2_on = ucontrol->value.integer.value[0];
17836 return 0;
17837}
17838
17839static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17840 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17841 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17842 msm_routing_put_use_ds1_or_ds2_control),
17843};
17844
17845int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17846 struct snd_ctl_elem_value *ucontrol) {
17847 int rc = 0;
17848 int be_idx = 0;
17849 char *param_value;
17850 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017851 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17852 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017853
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017854 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017855 if (!param_value)
17856 return -ENOMEM;
17857
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017858 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017859 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17860 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17861 break;
17862 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017863 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17864 param_hdr.instance_id = INSTANCE_ID_0;
17865 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17866 param_hdr.param_size = param_size;
17867 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17868 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017869 if (rc) {
17870 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17871 kfree(param_value);
17872 return -EINVAL;
17873 }
17874 update_param_value = (int *)param_value;
17875 ucontrol->value.integer.value[0] = update_param_value[0];
17876
17877 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17878 __func__, update_param_value[0]);
17879 }
17880 kfree(param_value);
17881 return 0;
17882}
17883
17884static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17885 struct snd_ctl_elem_value *ucontrol)
17886{
17887 voc_session_id = ucontrol->value.integer.value[0];
17888
17889 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17890
17891 return 0;
17892}
17893
17894static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17895 struct snd_ctl_elem_value *ucontrol)
17896{
17897 ucontrol->value.integer.value[0] = voc_session_id;
17898
17899 return 0;
17900}
17901
17902static struct snd_kcontrol_new msm_voc_session_controls[] = {
17903 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17904 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17905 msm_voc_session_id_put),
17906};
17907
17908static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17909 struct snd_ctl_elem_info *uinfo)
17910{
17911 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17912 uinfo->count = sizeof(struct sound_focus_param);
17913
17914 return 0;
17915}
17916
17917static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17918 struct snd_ctl_elem_value *ucontrol)
17919{
17920 int ret = 0;
17921 struct sound_focus_param soundFocusData;
17922
17923 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17924 sizeof(struct sound_focus_param));
17925 ret = voc_set_sound_focus(soundFocusData);
17926 if (ret) {
17927 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17928 __func__, ret);
17929
17930 ret = -EINVAL;
17931 }
17932
17933 return ret;
17934}
17935
17936static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17937 struct snd_ctl_elem_value *ucontrol)
17938{
17939 int ret = 0;
17940 struct sound_focus_param soundFocusData;
17941
17942 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17943
17944 ret = voc_get_sound_focus(&soundFocusData);
17945 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017946 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017947 __func__, ret);
17948
17949 ret = -EINVAL;
17950 goto done;
17951 }
17952 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17953 sizeof(struct sound_focus_param));
17954
17955done:
17956 return ret;
17957}
17958
17959static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17960 struct snd_ctl_elem_info *uinfo)
17961{
17962 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17963 uinfo->count = sizeof(struct source_tracking_param);
17964
17965 return 0;
17966}
17967
17968static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17969 struct snd_ctl_elem_value *ucontrol)
17970{
Meng Wang92edfde2018-04-24 12:18:37 +080017971 int ret = 0;
17972 struct source_tracking_param sourceTrackingData;
17973
17974 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17975
17976 ret = voc_get_source_tracking(&sourceTrackingData);
17977 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017978 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017979 __func__, ret);
17980
17981 ret = -EINVAL;
17982 goto done;
17983 }
17984 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17985 sizeof(struct source_tracking_param));
17986
17987done:
17988 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017989}
17990
17991static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17992 int *copp_idx)
17993{
17994 int i, idx, be_idx;
17995 int ret = 0;
17996 unsigned long copp;
17997
17998 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17999
18000 ret = q6audio_validate_port(port_id);
18001 if (ret < 0) {
18002 pr_err("%s: port validation failed id 0x%x ret %d\n",
18003 __func__, port_id, ret);
18004
18005 ret = -EINVAL;
18006 goto done;
18007 }
18008
18009 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
18010 if (msm_bedais[be_idx].port_id == port_id)
18011 break;
18012 }
18013 if (be_idx >= MSM_BACKEND_DAI_MAX) {
18014 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
18015
18016 ret = -EINVAL;
18017 goto done;
18018 }
18019
18020 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018021 MSM_FRONTEND_DAI_MAX) {
18022 if (!(is_mm_lsm_fe_id(i) &&
18023 route_check_fe_id_adm_support(i)))
18024 continue;
18025
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018026 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
18027 copp = session_copp_map[i]
18028 [session_type][be_idx];
18029 if (test_bit(idx, &copp))
18030 break;
18031 }
18032 if (idx >= MAX_COPPS_PER_PORT)
18033 continue;
18034 else
18035 break;
18036 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018037 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018038 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018039
18040 ret = -EINVAL;
18041 goto done;
18042 }
18043 *copp_idx = idx;
18044 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
18045
18046done:
18047 return ret;
18048}
18049
18050static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
18051 const char *prefix, int *port_id)
18052{
18053 int ret = 0;
18054
18055 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
18056
18057 /*
18058 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
18059 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
18060 * and compare the string with the backend name to derive the port id.
18061 */
18062 if (!strcmp(kcontrol->id.name + strlen(prefix),
18063 "SLIMBUS_0")) {
18064 *port_id = SLIMBUS_0_TX;
18065 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18066 "TERT_MI2S")) {
18067 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
18068 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18069 "INT3_MI2S")) {
18070 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018071 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18072 "VA_CDC_DMA_TX_0")) {
18073 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018074 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18075 "TX_CDC_DMA_TX_3")) {
18076 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018077 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18078 "QUIN_TDM_TX_0")) {
18079 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018080 } else {
18081 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
18082 __func__, kcontrol->id.name);
18083
18084 ret = -EINVAL;
18085 goto done;
18086 }
18087 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
18088 __func__, kcontrol->id.name, *port_id);
18089
18090done:
18091 return ret;
18092}
18093
18094static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
18095 struct snd_ctl_elem_value *ucontrol)
18096{
18097 int ret = 0;
18098 struct sound_focus_param soundFocusData;
18099 int port_id, copp_idx;
18100
18101 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18102 "Sound Focus Audio Tx ", &port_id);
18103 if (ret != 0) {
18104 pr_err("%s: Error in deriving port id, err=%d\n",
18105 __func__, ret);
18106
18107 ret = -EINVAL;
18108 goto done;
18109 }
18110
18111 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18112 &copp_idx);
18113 if (ret) {
18114 pr_err("%s: Could not get copp idx for port_id=%d\n",
18115 __func__, port_id);
18116
18117 ret = -EINVAL;
18118 goto done;
18119 }
18120
18121 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
18122 sizeof(struct sound_focus_param));
18123
18124 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
18125 if (ret) {
18126 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
18127 __func__, ret);
18128
18129 ret = -EINVAL;
18130 goto done;
18131 }
18132
18133done:
18134 return ret;
18135}
18136
18137static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
18138 struct snd_ctl_elem_value *ucontrol)
18139{
18140 int ret = 0;
18141 struct sound_focus_param soundFocusData;
18142 int port_id, copp_idx;
18143
18144 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18145 "Sound Focus Audio Tx ", &port_id);
18146 if (ret) {
18147 pr_err("%s: Error in deriving port id, err=%d\n",
18148 __func__, ret);
18149
18150 ret = -EINVAL;
18151 goto done;
18152 }
18153
18154 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18155 &copp_idx);
18156 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018157 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018158 __func__, port_id);
18159
18160 ret = -EINVAL;
18161 goto done;
18162 }
18163
18164 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
18165 if (ret) {
18166 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
18167 __func__, ret);
18168
18169 ret = -EINVAL;
18170 goto done;
18171 }
18172
18173 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
18174 sizeof(struct sound_focus_param));
18175
18176done:
18177 return ret;
18178}
18179
18180static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
18181 struct snd_ctl_elem_value *ucontrol)
18182{
18183 int ret = 0;
18184 struct source_tracking_param sourceTrackingData;
18185 int port_id, copp_idx;
18186
18187 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18188 "Source Tracking Audio Tx ", &port_id);
18189 if (ret) {
18190 pr_err("%s: Error in deriving port id, err=%d\n",
18191 __func__, ret);
18192
18193 ret = -EINVAL;
18194 goto done;
18195 }
18196
18197 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18198 &copp_idx);
18199 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018200 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018201 __func__, port_id);
18202
18203 ret = -EINVAL;
18204 goto done;
18205 }
18206
18207 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
18208 if (ret) {
18209 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
18210 __func__, ret);
18211
18212 ret = -EINVAL;
18213 goto done;
18214 }
18215
18216 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18217 sizeof(struct source_tracking_param));
18218
18219done:
18220 return ret;
18221}
18222
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018223static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
18224 struct snd_ctl_elem_info *uinfo)
18225{
18226 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18227 uinfo->count = sizeof(struct doa_tracking_mon_param);
18228
18229 return 0;
18230}
18231
18232static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
18233 struct snd_ctl_elem_value *ucontrol)
18234{
18235 int ret = 0;
18236 struct doa_tracking_mon_param doa_tracking_data;
18237 int port_id, copp_idx;
18238
18239 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
18240 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18241 "Doa Tracking Monitor Listen ", &port_id);
18242 if (ret) {
18243 pr_err("%s: Error in deriving port id, err=%d\n",
18244 __func__, ret);
18245 ret = -EINVAL;
18246 goto done;
18247 }
18248
18249 /*
18250 * If copp id exists for given port id, query adm to get doa data.
18251 * Else query afe for doa tracking params.
18252 * This is to support in cases where LSM directly connects to
18253 * AFE for FFNS.
18254 */
18255 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18256 &copp_idx);
18257 if (!ret)
18258 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
18259 &doa_tracking_data);
18260 else
18261 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
18262
18263 if (ret) {
18264 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
18265 __func__, ret);
18266 ret = -EINVAL;
18267 goto done;
18268 }
18269
18270 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
18271 sizeof(struct doa_tracking_mon_param));
18272done:
18273 return ret;
18274}
18275
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018276static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
18277 {
18278 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18279 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18280 .name = "Sound Focus Voice Tx SLIMBUS_0",
18281 .info = msm_sound_focus_info,
18282 .get = msm_voice_sound_focus_get,
18283 .put = msm_voice_sound_focus_put,
18284 },
18285 {
18286 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18287 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18288 .name = "Source Tracking Voice Tx SLIMBUS_0",
18289 .info = msm_source_tracking_info,
18290 .get = msm_voice_source_tracking_get,
18291 },
18292 {
18293 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18294 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18295 .name = "Sound Focus Audio Tx SLIMBUS_0",
18296 .info = msm_sound_focus_info,
18297 .get = msm_audio_sound_focus_get,
18298 .put = msm_audio_sound_focus_put,
18299 },
18300 {
18301 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18302 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18303 .name = "Source Tracking Audio Tx SLIMBUS_0",
18304 .info = msm_source_tracking_info,
18305 .get = msm_audio_source_tracking_get,
18306 },
18307 {
18308 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18309 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18310 .name = "Sound Focus Voice Tx TERT_MI2S",
18311 .info = msm_sound_focus_info,
18312 .get = msm_voice_sound_focus_get,
18313 .put = msm_voice_sound_focus_put,
18314 },
18315 {
18316 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18317 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18318 .name = "Source Tracking Voice Tx TERT_MI2S",
18319 .info = msm_source_tracking_info,
18320 .get = msm_voice_source_tracking_get,
18321 },
18322 {
18323 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18324 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18325 .name = "Sound Focus Audio Tx TERT_MI2S",
18326 .info = msm_sound_focus_info,
18327 .get = msm_audio_sound_focus_get,
18328 .put = msm_audio_sound_focus_put,
18329 },
18330 {
18331 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18332 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18333 .name = "Source Tracking Audio Tx TERT_MI2S",
18334 .info = msm_source_tracking_info,
18335 .get = msm_audio_source_tracking_get,
18336 },
18337 {
18338 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18339 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18340 .name = "Sound Focus Voice Tx INT3_MI2S",
18341 .info = msm_sound_focus_info,
18342 .get = msm_voice_sound_focus_get,
18343 .put = msm_voice_sound_focus_put,
18344 },
18345 {
18346 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18347 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18348 .name = "Source Tracking Voice Tx INT3_MI2S",
18349 .info = msm_source_tracking_info,
18350 .get = msm_voice_source_tracking_get,
18351 },
18352 {
18353 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18354 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18355 .name = "Sound Focus Audio Tx INT3_MI2S",
18356 .info = msm_sound_focus_info,
18357 .get = msm_audio_sound_focus_get,
18358 .put = msm_audio_sound_focus_put,
18359 },
18360 {
18361 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18362 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18363 .name = "Source Tracking Audio Tx INT3_MI2S",
18364 .info = msm_source_tracking_info,
18365 .get = msm_audio_source_tracking_get,
18366 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018367 {
18368 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18369 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18370 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18371 .info = msm_sound_focus_info,
18372 .get = msm_voice_sound_focus_get,
18373 .put = msm_voice_sound_focus_put,
18374 },
18375 {
18376 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18377 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18378 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18379 .info = msm_source_tracking_info,
18380 .get = msm_voice_source_tracking_get,
18381 },
18382 {
18383 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18384 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18385 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18386 .info = msm_sound_focus_info,
18387 .get = msm_audio_sound_focus_get,
18388 .put = msm_audio_sound_focus_put,
18389 },
18390 {
18391 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18392 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18393 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18394 .info = msm_source_tracking_info,
18395 .get = msm_audio_source_tracking_get,
18396 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018397 {
18398 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18399 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18400 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18401 .info = msm_sound_focus_info,
18402 .get = msm_voice_sound_focus_get,
18403 .put = msm_voice_sound_focus_put,
18404 },
18405 {
18406 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18407 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18408 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18409 .info = msm_source_tracking_info,
18410 .get = msm_voice_source_tracking_get,
18411 },
18412 {
18413 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18415 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18416 .info = msm_sound_focus_info,
18417 .get = msm_audio_sound_focus_get,
18418 .put = msm_audio_sound_focus_put,
18419 },
18420 {
18421 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18422 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18423 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18424 .info = msm_source_tracking_info,
18425 .get = msm_audio_source_tracking_get,
18426 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018427 {
18428 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18429 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18430 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18431 .info = msm_sound_focus_info,
18432 .get = msm_voice_sound_focus_get,
18433 .put = msm_voice_sound_focus_put,
18434 },
18435 {
18436 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18437 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18438 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18439 .info = msm_source_tracking_info,
18440 .get = msm_voice_source_tracking_get,
18441 },
18442 {
18443 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18444 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18445 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18446 .info = msm_sound_focus_info,
18447 .get = msm_audio_sound_focus_get,
18448 .put = msm_audio_sound_focus_put,
18449 },
18450 {
18451 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18452 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18453 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18454 .info = msm_source_tracking_info,
18455 .get = msm_audio_source_tracking_get,
18456 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018457 {
18458 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18459 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18460 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18461 .info = msm_doa_tracking_mon_info,
18462 .get = msm_doa_tracking_mon_get,
18463 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018464};
18465
18466static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18467 struct snd_ctl_elem_value *ucontrol)
18468{
18469 int ret = 0;
18470 int item;
18471 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18472
18473 pr_debug("%s item is %d\n", __func__,
18474 ucontrol->value.enumerated.item[0]);
18475 mutex_lock(&routing_lock);
18476 item = ucontrol->value.enumerated.item[0];
18477 if (item < e->items) {
18478 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18479 __func__, e->shift_l, e->values[item]);
18480 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18481 e->values[item] < MSM_BACKEND_DAI_MAX)
18482 /* Enable feedback TX path */
18483 ret = afe_spk_prot_feed_back_cfg(
18484 msm_bedais[e->values[item]].port_id,
18485 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18486 else {
18487 pr_debug("%s values are out of range item %d\n",
18488 __func__, e->values[item]);
18489 /* Disable feedback TX path */
18490 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18491 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18492 else
18493 ret = -EINVAL;
18494 }
18495 } else {
18496 pr_err("%s item value is out of range item\n", __func__);
18497 ret = -EINVAL;
18498 }
18499 mutex_unlock(&routing_lock);
18500 return ret;
18501}
18502
18503static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18504 struct snd_ctl_elem_value *ucontrol)
18505{
18506 int ret = 0;
18507 int item;
18508 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18509
18510 pr_debug("%s item is %d\n", __func__,
18511 ucontrol->value.enumerated.item[0]);
18512 mutex_lock(&routing_lock);
18513 item = ucontrol->value.enumerated.item[0];
18514 if (item < e->items) {
18515 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18516 __func__, e->shift_l, e->values[item]);
18517 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18518 e->values[item] < MSM_BACKEND_DAI_MAX)
18519 /* Enable feedback TX path */
18520 ret = afe_spk_prot_feed_back_cfg(
18521 msm_bedais[e->values[item]].port_id,
18522 msm_bedais[e->shift_l].port_id,
18523 1, 1, 1);
18524 else {
18525 pr_debug("%s values are out of range item %d\n",
18526 __func__, e->values[item]);
18527 /* Disable feedback TX path */
18528 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18529 ret = afe_spk_prot_feed_back_cfg(0,
18530 0, 0, 0, 0);
18531 else
18532 ret = -EINVAL;
18533 }
18534 } else {
18535 pr_err("%s item value is out of range item\n", __func__);
18536 ret = -EINVAL;
18537 }
18538 mutex_unlock(&routing_lock);
18539 return ret;
18540}
18541
18542static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18543 struct snd_ctl_elem_value *ucontrol)
18544{
18545 pr_debug("%s\n", __func__);
18546 return 0;
18547}
18548
18549static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18550 struct snd_ctl_elem_value *ucontrol)
18551{
18552 pr_debug("%s\n", __func__);
18553 ucontrol->value.enumerated.item[0] = 0;
18554 return 0;
18555}
18556
18557static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18558 "ZERO", "SLIM4_TX"
18559};
18560
18561static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18562 "ZERO", "SLIM4_TX"
18563};
18564
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018565static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18566 "ZERO", "WSA_CDC_DMA_TX_0"
18567};
18568
18569static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18570 "ZERO", "WSA_CDC_DMA_TX_0"
18571};
18572
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018573static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18574 "ZERO", "SENARY_TX"
18575};
18576
18577static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18578 "ZERO", "INT5_MI2S_TX"
18579};
18580
18581static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18582 "ZERO", "INT5_MI2S_TX"
18583};
18584
Josh Kirschea69fed2018-12-11 16:15:08 -080018585static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018586 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18587};
18588
Josh Kirschea69fed2018-12-11 16:15:08 -080018589static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018590 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18591};
18592
Josh Kirschea69fed2018-12-11 16:15:08 -080018593static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018594 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18595};
18596
Josh Kirschea69fed2018-12-11 16:15:08 -080018597static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018598 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18599};
18600
18601
Josh Kirschea69fed2018-12-11 16:15:08 -080018602static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018603 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18604};
18605
Josh Kirschea69fed2018-12-11 16:15:08 -080018606static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018607 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18608};
18609
Josh Kirschea69fed2018-12-11 16:15:08 -080018610static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018611 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18612};
18613
18614static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18615 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18616 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18617 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18618
18619static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18620 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18621 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18622 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18623
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018624static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18625 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18626 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18627 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18628
18629static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18630 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18631 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18632 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18633
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018634static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18635 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18636 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18637 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18638
18639static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18640 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18641 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18642 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18643 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18644
18645static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18646 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18647 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18648 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18649 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18650
18651static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18652 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18653 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18654 spkr_prot_put_vi_lch_port);
18655
18656static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18657 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18658 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18659 spkr_prot_put_vi_rch_port);
18660
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018661static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18662 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18663 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18664 spkr_prot_put_vi_lch_port);
18665
18666static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18667 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18668 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18669 spkr_prot_put_vi_rch_port);
18670
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018671static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18672 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18673 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18674 spkr_prot_put_vi_lch_port);
18675
18676static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18677 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18678 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18679 spkr_prot_put_vi_lch_port);
18680
18681static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18682 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18683 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18684 spkr_prot_put_vi_rch_port);
18685
18686static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18687 /* Frontend AIF */
18688 /* Widget name equals to Front-End DAI name<Need confirmation>,
18689 * Stream name must contains substring of front-end dai name
18690 */
18691 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18692 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18693 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18694 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18695 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18696 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18697 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18698 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18699 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18700 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18701 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18702 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18703 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18704 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18705 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18706 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18707 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018708 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018709 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018710 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18711 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18712 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18713 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18714 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18715 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18716 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18717 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18718 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018719 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018720 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018721 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18722 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18723 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18724 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018725 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018726 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018727 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18728 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018729 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18730 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18731 "VoiceMMode1 Playback", 0, 0, 0, 0),
18732 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18733 "VoiceMMode1 Capture", 0, 0, 0, 0),
18734 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18735 "VoiceMMode2 Playback", 0, 0, 0, 0),
18736 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18737 "VoiceMMode2 Capture", 0, 0, 0, 0),
18738 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18739 0, 0, 0, 0),
18740 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18741 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018742 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18743 0, 0, 0, 0),
18744 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18745 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018746 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18747 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018748 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18749 0, 0, 0, 0),
18750 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18751 0, 0, 0, 0),
18752 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18753 0, 0, 0, 0),
18754 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18755 0, 0, 0, 0),
18756 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18757 0, 0, 0, 0),
18758 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18759 0, 0, 0, 0),
18760 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18761 0, 0, 0, 0),
18762 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18763 0, 0, 0, 0),
18764 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18765 0, 0, 0, 0),
18766 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18767 0, 0, 0, 0),
18768 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18769 0, 0, 0, 0),
18770 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18771 0, 0, 0, 0),
18772 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18773 0, 0, 0, 0),
18774 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18775 0, 0, 0, 0),
18776 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18777 0, 0, 0, 0),
18778 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18779 0, 0, 0, 0),
18780 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18781 0, 0, 0, 0),
18782 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18783 0, 0, 0, 0),
18784 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18785 0, 0, 0, 0),
18786 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18787 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18788 0, 0, 0, 0),
18789 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18790 "INT0 MI2S_RX Hostless Playback",
18791 0, 0, 0, 0),
18792 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18793 "INT4 MI2S_RX Hostless Playback",
18794 0, 0, 0, 0),
18795 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18796 "Primary MI2S_RX Hostless Playback",
18797 0, 0, 0, 0),
18798 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18799 "Secondary MI2S_RX Hostless Playback",
18800 0, 0, 0, 0),
18801 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18802 "Tertiary MI2S_RX Hostless Playback",
18803 0, 0, 0, 0),
18804 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18805 "Quaternary MI2S_RX Hostless Playback",
18806 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018807 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18808 "Quinary MI2S_RX Hostless Playback",
18809 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018810
18811 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18812 0, 0, 0, 0),
18813 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18814 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018815 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18816 0, 0, 0, 0),
18817 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18818 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018819 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18820 0, 0, 0, 0),
18821 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18822 "INT3 MI2S_TX Hostless Capture",
18823 0, 0, 0, 0),
18824 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18825 "Tertiary MI2S_TX Hostless Capture",
18826 0, 0, 0, 0),
18827 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18828 "Secondary MI2S_TX Hostless Capture",
18829 0, 0, 0, 0),
18830 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18831 "Primary MI2S_TX Hostless Capture",
18832 0, 0, 0, 0),
18833 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18834 0, 0, 0, 0),
18835 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18836 0, 0, 0, 0),
18837 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18838 "Quaternary MI2S_TX Hostless Capture",
18839 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018840 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18841 "Quinary MI2S_TX Hostless Capture",
18842 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018843
18844 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18845 "Primary TDM0 Hostless Playback",
18846 0, 0, 0, 0),
18847 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18848 "Primary TDM0 Hostless Capture",
18849 0, 0, 0, 0),
18850 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18851 "Primary TDM1 Hostless Playback",
18852 0, 0, 0, 0),
18853 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18854 "Primary TDM1 Hostless Capture",
18855 0, 0, 0, 0),
18856 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18857 "Primary TDM2 Hostless Playback",
18858 0, 0, 0, 0),
18859 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18860 "Primary TDM2 Hostless Capture",
18861 0, 0, 0, 0),
18862 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18863 "Primary TDM3 Hostless Playback",
18864 0, 0, 0, 0),
18865 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18866 "Primary TDM3 Hostless Capture",
18867 0, 0, 0, 0),
18868 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18869 "Primary TDM4 Hostless Playback",
18870 0, 0, 0, 0),
18871 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18872 "Primary TDM4 Hostless Capture",
18873 0, 0, 0, 0),
18874 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18875 "Primary TDM5 Hostless Playback",
18876 0, 0, 0, 0),
18877 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18878 "Primary TDM5 Hostless Capture",
18879 0, 0, 0, 0),
18880 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18881 "Primary TDM6 Hostless Playback",
18882 0, 0, 0, 0),
18883 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18884 "Primary TDM6 Hostless Capture",
18885 0, 0, 0, 0),
18886 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18887 "Primary TDM7 Hostless Playback",
18888 0, 0, 0, 0),
18889 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18890 "Primary TDM7 Hostless Capture",
18891 0, 0, 0, 0),
18892 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18893 "Secondary TDM0 Hostless Playback",
18894 0, 0, 0, 0),
18895 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18896 "Secondary TDM0 Hostless Capture",
18897 0, 0, 0, 0),
18898 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18899 "Secondary TDM1 Hostless Playback",
18900 0, 0, 0, 0),
18901 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18902 "Secondary TDM1 Hostless Capture",
18903 0, 0, 0, 0),
18904 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18905 "Secondary TDM2 Hostless Playback",
18906 0, 0, 0, 0),
18907 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18908 "Secondary TDM2 Hostless Capture",
18909 0, 0, 0, 0),
18910 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18911 "Secondary TDM3 Hostless Playback",
18912 0, 0, 0, 0),
18913 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18914 "Secondary TDM3 Hostless Capture",
18915 0, 0, 0, 0),
18916 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18917 "Secondary TDM4 Hostless Playback",
18918 0, 0, 0, 0),
18919 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18920 "Secondary TDM4 Hostless Capture",
18921 0, 0, 0, 0),
18922 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18923 "Secondary TDM5 Hostless Playback",
18924 0, 0, 0, 0),
18925 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18926 "Secondary TDM5 Hostless Capture",
18927 0, 0, 0, 0),
18928 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18929 "Secondary TDM6 Hostless Playback",
18930 0, 0, 0, 0),
18931 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18932 "Secondary TDM6 Hostless Capture",
18933 0, 0, 0, 0),
18934 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18935 "Secondary TDM7 Hostless Playback",
18936 0, 0, 0, 0),
18937 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18938 "Secondary TDM7 Hostless Capture",
18939 0, 0, 0, 0),
18940 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18941 "Tertiary TDM0 Hostless Playback",
18942 0, 0, 0, 0),
18943 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18944 "Tertiary TDM0 Hostless Capture",
18945 0, 0, 0, 0),
18946 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18947 "Tertiary TDM1 Hostless Playback",
18948 0, 0, 0, 0),
18949 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18950 "Tertiary TDM1 Hostless Capture",
18951 0, 0, 0, 0),
18952 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18953 "Tertiary TDM2 Hostless Playback",
18954 0, 0, 0, 0),
18955 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18956 "Tertiary TDM2 Hostless Capture",
18957 0, 0, 0, 0),
18958 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18959 "Tertiary TDM3 Hostless Playback",
18960 0, 0, 0, 0),
18961 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18962 "Tertiary TDM3 Hostless Capture",
18963 0, 0, 0, 0),
18964 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18965 "Tertiary TDM4 Hostless Playback",
18966 0, 0, 0, 0),
18967 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18968 "Tertiary TDM4 Hostless Capture",
18969 0, 0, 0, 0),
18970 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18971 "Tertiary TDM5 Hostless Playback",
18972 0, 0, 0, 0),
18973 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18974 "Tertiary TDM5 Hostless Capture",
18975 0, 0, 0, 0),
18976 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18977 "Tertiary TDM6 Hostless Playback",
18978 0, 0, 0, 0),
18979 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18980 "Tertiary TDM6 Hostless Capture",
18981 0, 0, 0, 0),
18982 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18983 "Tertiary TDM7 Hostless Playback",
18984 0, 0, 0, 0),
18985 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18986 "Tertiary TDM7 Hostless Capture",
18987 0, 0, 0, 0),
18988 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18989 "Quaternary TDM0 Hostless Playback",
18990 0, 0, 0, 0),
18991 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18992 "Quaternary TDM0 Hostless Capture",
18993 0, 0, 0, 0),
18994 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18995 "Quaternary TDM1 Hostless Playback",
18996 0, 0, 0, 0),
18997 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18998 "Quaternary TDM1 Hostless Capture",
18999 0, 0, 0, 0),
19000 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
19001 "Quaternary TDM2 Hostless Playback",
19002 0, 0, 0, 0),
19003 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
19004 "Quaternary TDM2 Hostless Capture",
19005 0, 0, 0, 0),
19006 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
19007 "Quaternary TDM3 Hostless Playback",
19008 0, 0, 0, 0),
19009 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
19010 "Quaternary TDM3 Hostless Capture",
19011 0, 0, 0, 0),
19012 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
19013 "Quaternary TDM4 Hostless Playback",
19014 0, 0, 0, 0),
19015 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
19016 "Quaternary TDM4 Hostless Capture",
19017 0, 0, 0, 0),
19018 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
19019 "Quaternary TDM5 Hostless Playback",
19020 0, 0, 0, 0),
19021 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
19022 "Quaternary TDM5 Hostless Capture",
19023 0, 0, 0, 0),
19024 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
19025 "Quaternary TDM6 Hostless Playback",
19026 0, 0, 0, 0),
19027 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
19028 "Quaternary TDM6 Hostless Capture",
19029 0, 0, 0, 0),
19030 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
19031 "Quaternary TDM7 Hostless Playback",
19032 0, 0, 0, 0),
19033 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
19034 "Quaternary TDM7 Hostless Capture",
19035 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019036 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
19037 "Quinary TDM0 Hostless Playback",
19038 0, 0, 0, 0),
19039 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
19040 "Quinary TDM0 Hostless Capture",
19041 0, 0, 0, 0),
19042 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
19043 "Quinary TDM1 Hostless Playback",
19044 0, 0, 0, 0),
19045 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
19046 "Quinary TDM1 Hostless Capture",
19047 0, 0, 0, 0),
19048 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
19049 "Quinary TDM2 Hostless Playback",
19050 0, 0, 0, 0),
19051 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
19052 "Quinary TDM2 Hostless Capture",
19053 0, 0, 0, 0),
19054 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
19055 "Quinary TDM3 Hostless Playback",
19056 0, 0, 0, 0),
19057 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
19058 "Quinary TDM3 Hostless Capture",
19059 0, 0, 0, 0),
19060 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
19061 "Quinary TDM4 Hostless Playback",
19062 0, 0, 0, 0),
19063 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
19064 "Quinary TDM4 Hostless Capture",
19065 0, 0, 0, 0),
19066 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
19067 "Quinary TDM5 Hostless Playback",
19068 0, 0, 0, 0),
19069 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
19070 "Quinary TDM5 Hostless Capture",
19071 0, 0, 0, 0),
19072 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
19073 "Quinary TDM6 Hostless Playback",
19074 0, 0, 0, 0),
19075 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
19076 "Quinary TDM6 Hostless Capture",
19077 0, 0, 0, 0),
19078 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
19079 "Quinary TDM7 Hostless Playback",
19080 0, 0, 0, 0),
19081 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
19082 "Quinary TDM7 Hostless Capture",
19083 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019084
19085 /* LSM */
19086 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
19087 0, 0, 0, 0),
19088 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
19089 0, 0, 0, 0),
19090 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
19091 0, 0, 0, 0),
19092 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
19093 0, 0, 0, 0),
19094 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
19095 0, 0, 0, 0),
19096 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
19097 0, 0, 0, 0),
19098 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
19099 0, 0, 0, 0),
19100 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
19101 0, 0, 0, 0),
19102 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
19103 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
19104 /* Backend AIF */
19105 /* Stream name equals to backend dai link stream name */
19106 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
19107 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
19108 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020019109 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
19110 0, 0, 0, 0),
19111 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
19112 0, 0, 0, 0),
19113 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
19114 0, 0, 0, 0),
19115 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
19116 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019117 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
19118 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
19119 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
19120 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
19121 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
19122 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019123 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
19124 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019125 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
19126 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
19127 0, 0, 0, 0),
19128 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
19129 0, 0, 0, 0),
19130 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
19131 0, 0, 0, 0),
19132 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
19133 "Secondary MI2S Playback SD1",
19134 0, 0, 0, 0),
19135 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
19136 0, 0, 0, 0),
19137 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
19138 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019139 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
19140 0, 0, 0, 0),
19141 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
19142 0, 0, 0, 0),
19143 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
19144 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019145 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
19146 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019147 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
19148 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019149 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
19150 0, 0, 0, 0),
19151 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
19152 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
19153 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
19154 0, 0, 0, 0),
19155 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
19156 0, 0, 0, 0),
19157 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
19158 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019159 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
19160 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019161 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
19162 0, 0, 0, 0),
19163 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
19164 0, 0, 0, 0),
19165 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
19166 0, 0, 0, 0),
19167 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
19168 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
19169 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
19170 0, 0, 0, 0),
19171 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
19172 0, 0, 0, 0),
19173 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
19174 0, 0, 0, 0),
19175 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
19176 0, 0, 0, 0),
19177 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
19178 0, 0, 0, 0),
19179 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
19180 0, 0, 0, 0),
19181 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
19182 0, 0, 0, 0),
19183 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
19184 0, 0, 0, 0),
19185 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
19186 0, 0, 0, 0),
19187 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
19188 0, 0, 0, 0),
19189 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
19190 0, 0, 0, 0),
19191 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
19192 0, 0, 0, 0),
19193 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
19194 0, 0, 0, 0),
19195 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
19196 0, 0, 0, 0),
19197 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
19198 0, 0, 0, 0),
19199 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
19200 0, 0, 0, 0),
19201 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
19202 0, 0, 0, 0),
19203 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
19204 0, 0, 0, 0),
19205 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
19206 0, 0, 0, 0),
19207 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
19208 0, 0, 0, 0),
19209 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
19210 0, 0, 0, 0),
19211 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
19212 0, 0, 0, 0),
19213 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
19214 0, 0, 0, 0),
19215 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
19216 0, 0, 0, 0),
19217 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
19218 0, 0, 0, 0),
19219 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
19220 0, 0, 0, 0),
19221 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
19222 0, 0, 0, 0),
19223 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
19224 0, 0, 0, 0),
19225 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
19226 0, 0, 0, 0),
19227 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
19228 0, 0, 0, 0),
19229 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
19230 0, 0, 0, 0),
19231 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
19232 0, 0, 0, 0),
19233 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
19234 0, 0, 0, 0),
19235 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
19236 0, 0, 0, 0),
19237 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
19238 0, 0, 0, 0),
19239 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
19240 0, 0, 0, 0),
19241 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
19242 0, 0, 0, 0),
19243 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
19244 0, 0, 0, 0),
19245 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
19246 0, 0, 0, 0),
19247 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
19248 0, 0, 0, 0),
19249 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
19250 0, 0, 0, 0),
19251 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
19252 0, 0, 0, 0),
19253 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
19254 0, 0, 0, 0),
19255 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
19256 0, 0, 0, 0),
19257 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
19258 0, 0, 0, 0),
19259 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
19260 0, 0, 0, 0),
19261 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
19262 0, 0, 0, 0),
19263 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
19264 0, 0, 0, 0),
19265 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
19266 0, 0, 0, 0),
19267 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
19268 0, 0, 0, 0),
19269 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
19270 0, 0, 0, 0),
19271 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
19272 0, 0, 0, 0),
19273 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
19274 0, 0, 0, 0),
19275 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
19276 0, 0, 0, 0),
19277 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
19278 0, 0, 0, 0),
19279 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
19280 0, 0, 0, 0),
19281 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
19282 0, 0, 0, 0),
19283 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
19284 0, 0, 0, 0),
19285 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
19286 0, 0, 0, 0),
19287 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
19288 0, 0, 0, 0),
19289 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
19290 0, 0, 0, 0),
19291 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
19292 0, 0, 0, 0),
19293 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
19294 0, 0, 0, 0),
19295 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
19296 0, 0, 0, 0),
19297 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
19298 0, 0, 0, 0),
19299 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
19300 0, 0, 0, 0),
19301 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
19302 0, 0, 0, 0),
19303 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
19304 0, 0, 0, 0),
19305 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
19306 0, 0, 0, 0),
19307 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
19308 0, 0, 0, 0),
19309 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19310 0, 0, 0, 0),
19311 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19312 0, 0, 0, 0),
19313 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19314 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019315 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19316 0, 0, 0, 0),
19317 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19318 0, 0, 0, 0),
19319 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19320 0, 0, 0, 0),
19321 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19322 0, 0, 0, 0),
19323 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19324 0, 0, 0, 0),
19325 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19326 0, 0, 0, 0),
19327 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19328 0, 0, 0, 0),
19329 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19330 0, 0, 0, 0),
19331 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19332 0, 0, 0, 0),
19333 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19334 0, 0, 0, 0),
19335 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19336 0, 0, 0, 0),
19337 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19338 0, 0, 0, 0),
19339 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19340 0, 0, 0, 0),
19341 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19342 0, 0, 0, 0),
19343 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19344 0, 0, 0, 0),
19345 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19346 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019347 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19348 0, 0, 0, 0),
19349 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19350 0, 0, 0, 0),
19351 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19352 0, 0, 0, 0),
19353 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19354 0, 0, 0, 0),
19355 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19356 0, 0, 0, 0),
19357 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19358 0, 0, 0, 0),
19359 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19360 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019361 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19362 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019363 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19364 0, 0, 0, 0),
19365 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19366 0, 0, 0, 0),
19367 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19368 0, 0, 0, 0),
19369 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19370 0, 0, 0, 0),
19371 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19372 0, 0, 0, 0),
19373 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19374 0, 0, 0, 0),
19375 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19376 0, 0, 0, 0),
19377 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19378 0, 0, 0, 0),
19379 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19380 0, 0, 0, 0),
19381 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19382 0, 0, 0, 0),
19383 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19384 0, 0, 0, 0),
19385 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19386 0, 0, 0, 0),
19387 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19388 0, 0, 0, 0),
19389 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19390 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019391 /* incall */
19392 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19393 0, 0, 0, 0),
19394 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19395 0, 0, 0, 0),
19396 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19397 0, 0, 0, 0),
19398 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19399 0, 0, 0, 0),
19400 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19401 0, 0, 0, 0),
19402 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19403 0, 0, 0, 0),
19404 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19405 0, 0, 0, 0),
19406 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19407 0, 0, 0, 0),
19408 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19409
19410 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19411 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19412 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19413 0, 0, 0, 0),
19414 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19415 0, 0, 0, 0),
19416 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19417 0, 0, 0, 0),
19418 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19419 0, 0, 0, 0),
19420 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19421 0, 0, 0, 0),
19422 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19423 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019424 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19425 0, 0, 0, 0),
19426 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19427 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019428 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19429 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19430 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19431 0, 0, 0, 0),
19432 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19433 0, 0, 0, 0),
19434 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19435 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19436 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19437 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19438 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19439 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19440 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19441 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19442 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19443 /* In- call recording */
19444 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19445 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019446 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19447 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019448 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19449 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19450
19451 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19452 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019453 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19454 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019455 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19456 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19457
19458 /* Switch Definitions */
19459 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19460 &slim_fm_switch_mixer_controls),
19461 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19462 &slim1_fm_switch_mixer_controls),
19463 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19464 &slim3_fm_switch_mixer_controls),
19465 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19466 &slim4_fm_switch_mixer_controls),
19467 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19468 &slim6_fm_switch_mixer_controls),
19469 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19470 &pcm_rx_switch_mixer_controls),
19471 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19472 &int0_mi2s_rx_switch_mixer_controls),
19473 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19474 &int4_mi2s_rx_switch_mixer_controls),
19475 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19476 &pri_mi2s_rx_switch_mixer_controls),
19477 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19478 &sec_mi2s_rx_switch_mixer_controls),
19479 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19480 &tert_mi2s_rx_switch_mixer_controls),
19481 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19482 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019483 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19484 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019485 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19486 &hfp_pri_aux_switch_mixer_controls),
19487 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19488 &hfp_aux_switch_mixer_controls),
19489 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19490 &hfp_int_switch_mixer_controls),
19491 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19492 &hfp_slim7_switch_mixer_controls),
19493 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19494 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019495 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19496 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019497 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019498 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019499 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019500 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019501
19502 /* Mixer definitions */
19503 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19504 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19505 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19506 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19507 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19508 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19509 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19510 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19511 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19512 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19513 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19514 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019515 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19516 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019517 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19518 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19519 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19520 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019521 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19522 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019523 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19524 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19525 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19526 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019527 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19528 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19529 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19530 quaternary_mi2s_rx_mixer_controls,
19531 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19532 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19533 tertiary_mi2s_rx_mixer_controls,
19534 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19535 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19536 secondary_mi2s_rx_mixer_controls,
19537 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19538 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19539 secondary_mi2s_rx2_mixer_controls,
19540 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19541 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19542 primary_mi2s_rx_mixer_controls,
19543 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19544 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19545 int0_mi2s_rx_mixer_controls,
19546 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19547 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19548 int4_mi2s_rx_mixer_controls,
19549 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19550 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19551 quinary_mi2s_rx_mixer_controls,
19552 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19553 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19554 pri_tdm_rx_0_mixer_controls,
19555 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19556 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19557 pri_tdm_rx_1_mixer_controls,
19558 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19559 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19560 pri_tdm_rx_2_mixer_controls,
19561 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19562 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19563 pri_tdm_rx_3_mixer_controls,
19564 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19565 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19566 pri_tdm_tx_0_mixer_controls,
19567 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19568 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19569 sec_tdm_rx_0_mixer_controls,
19570 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19571 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19572 sec_tdm_rx_1_mixer_controls,
19573 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19574 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19575 sec_tdm_rx_2_mixer_controls,
19576 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19577 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19578 sec_tdm_rx_3_mixer_controls,
19579 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19580 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19581 sec_tdm_tx_0_mixer_controls,
19582 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19583 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19584 tert_tdm_rx_0_mixer_controls,
19585 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19586 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19587 tert_tdm_tx_0_mixer_controls,
19588 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19589 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19590 tert_tdm_rx_1_mixer_controls,
19591 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19592 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19593 tert_tdm_rx_2_mixer_controls,
19594 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19595 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19596 tert_tdm_rx_3_mixer_controls,
19597 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19598 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19599 tert_tdm_rx_4_mixer_controls,
19600 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19601 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19602 quat_tdm_rx_0_mixer_controls,
19603 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19604 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19605 quat_tdm_tx_0_mixer_controls,
19606 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19607 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19608 quat_tdm_rx_1_mixer_controls,
19609 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19610 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19611 quat_tdm_rx_2_mixer_controls,
19612 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19613 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19614 quat_tdm_rx_3_mixer_controls,
19615 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019616 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19617 quin_tdm_rx_0_mixer_controls,
19618 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19619 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19620 quin_tdm_tx_0_mixer_controls,
19621 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19622 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19623 quin_tdm_rx_1_mixer_controls,
19624 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19625 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19626 quin_tdm_rx_2_mixer_controls,
19627 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19628 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19629 quin_tdm_rx_3_mixer_controls,
19630 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019631 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19632 wsa_cdc_dma_rx_0_mixer_controls,
19633 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19634 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19635 wsa_cdc_dma_rx_1_mixer_controls,
19636 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019637 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19638 rx_cdc_dma_rx_0_mixer_controls,
19639 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19640 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19641 rx_cdc_dma_rx_1_mixer_controls,
19642 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19643 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19644 rx_cdc_dma_rx_2_mixer_controls,
19645 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19646 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19647 rx_cdc_dma_rx_3_mixer_controls,
19648 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19649 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19650 rx_cdc_dma_rx_4_mixer_controls,
19651 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19652 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19653 rx_cdc_dma_rx_5_mixer_controls,
19654 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19655 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19656 rx_cdc_dma_rx_6_mixer_controls,
19657 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19658 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19659 rx_cdc_dma_rx_7_mixer_controls,
19660 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019661 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19662 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19663 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19664 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19665 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19666 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19667 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19668 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19669 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19670 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19671 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19672 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19673 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19674 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19675 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19676 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019677 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19678 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019679 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19680 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019681 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19682 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19683 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19684 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19685 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19686 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19687 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19688 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019689 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19690 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019691 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19692 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019693 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19694 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19695 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19696 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019697 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19698 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19699 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19700 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19701 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19702 tert_auxpcm_rx_mixer_controls,
19703 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19704 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19705 quat_auxpcm_rx_mixer_controls,
19706 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019707 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19708 quin_auxpcm_rx_mixer_controls,
19709 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019710 /* incall */
19711 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19712 incall_music_delivery_mixer_controls,
19713 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19714 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19715 incall_music2_delivery_mixer_controls,
19716 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19717 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19718 slimbus_4_rx_mixer_controls,
19719 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19720 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19721 slimbus_6_rx_mixer_controls,
19722 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19723 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19724 usb_audio_rx_mixer_controls,
19725 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19726 /* Voice Mixer */
19727 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19728 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19729 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19730 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19731 SND_SOC_NOPM, 0, 0,
19732 sec_i2s_rx_voice_mixer_controls,
19733 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19734 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19735 SND_SOC_NOPM, 0, 0,
19736 sec_mi2s_rx_voice_mixer_controls,
19737 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19738 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19739 SND_SOC_NOPM, 0, 0,
19740 slimbus_rx_voice_mixer_controls,
19741 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19742 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19743 SND_SOC_NOPM, 0, 0,
19744 bt_sco_rx_voice_mixer_controls,
19745 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19746 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19747 SND_SOC_NOPM, 0, 0,
19748 afe_pcm_rx_voice_mixer_controls,
19749 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19750 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19751 SND_SOC_NOPM, 0, 0,
19752 aux_pcm_rx_voice_mixer_controls,
19753 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19754 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19755 SND_SOC_NOPM, 0, 0,
19756 sec_aux_pcm_rx_voice_mixer_controls,
19757 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19758 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19759 SND_SOC_NOPM, 0, 0,
19760 tert_aux_pcm_rx_voice_mixer_controls,
19761 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19762 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19763 SND_SOC_NOPM, 0, 0,
19764 quat_aux_pcm_rx_voice_mixer_controls,
19765 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019766 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19767 SND_SOC_NOPM, 0, 0,
19768 quin_aux_pcm_rx_voice_mixer_controls,
19769 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019770 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19771 SND_SOC_NOPM, 0, 0,
19772 hdmi_rx_voice_mixer_controls,
19773 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19774 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19775 SND_SOC_NOPM, 0, 0,
19776 mi2s_rx_voice_mixer_controls,
19777 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19778 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19779 SND_SOC_NOPM, 0, 0,
19780 pri_mi2s_rx_voice_mixer_controls,
19781 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19782 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19783 SND_SOC_NOPM, 0, 0,
19784 int0_mi2s_rx_voice_mixer_controls,
19785 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19786 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19787 SND_SOC_NOPM, 0, 0,
19788 int4_mi2s_rx_voice_mixer_controls,
19789 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19790 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19791 SND_SOC_NOPM, 0, 0,
19792 tert_mi2s_rx_voice_mixer_controls,
19793 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19794 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19795 SND_SOC_NOPM, 0, 0,
19796 quat_mi2s_rx_voice_mixer_controls,
19797 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19798 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19799 SND_SOC_NOPM, 0, 0,
19800 quin_mi2s_rx_voice_mixer_controls,
19801 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19802 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19803 SND_SOC_NOPM, 0, 0,
19804 quat_tdm_rx_2_voice_mixer_controls,
19805 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019806 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19807 SND_SOC_NOPM, 0, 0,
19808 wsa_cdc_dma_rx_0_voice_mixer_controls,
19809 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19810 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19811 SND_SOC_NOPM, 0, 0,
19812 rx_cdc_dma_rx_0_voice_mixer_controls,
19813 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019814 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19815 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19816 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019817 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19818 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19819 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19820 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19821 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19822 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19823 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19824 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19825 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19826 int_bt_a2dp_rx_mixer_controls,
19827 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19828 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19829 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19830 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19831 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19832 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19833 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19834 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19835 tx_voice2_stub_mixer_controls,
19836 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19837 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19838 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19839 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19840 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19841 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19842 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19843 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19844 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19845 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19846 SND_SOC_NOPM, 0, 0,
19847 slimbus_6_rx_voice_mixer_controls,
19848 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19849 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19850 slimbus_7_rx_voice_mixer_controls,
19851 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19852 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19853 slimbus_8_rx_voice_mixer_controls,
19854 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19855 /* port mixer */
19856 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19857 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19858 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19859 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19860 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19861 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19862 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19863 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19864 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19865 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19866 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19867 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19868 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19869 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19870 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019871 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19872 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19873 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019874 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19875 sbus_1_rx_port_mixer_controls,
19876 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19877 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19878 bt_sco_rx_port_mixer_controls,
19879 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19880 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19881 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19882 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19883 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19884 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19885 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19886 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19887 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19888 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019889 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019890 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19891 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019892 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19893 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19894 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19895 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19896 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19897 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19898 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19899 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19900 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19901 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19902 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19903 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19904 primary_mi2s_rx_port_mixer_controls,
19905 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19906 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19907 sec_mi2s_rx_port_mixer_controls,
19908 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19909 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19910 tert_mi2s_rx_port_mixer_controls,
19911 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19912 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19913 quat_mi2s_rx_port_mixer_controls,
19914 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019915 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19916 quin_mi2s_rx_port_mixer_controls,
19917 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019918 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19919 pri_tdm_rx_0_port_mixer_controls,
19920 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19921 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19922 pri_tdm_rx_1_port_mixer_controls,
19923 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19924 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19925 pri_tdm_rx_2_port_mixer_controls,
19926 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19927 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19928 pri_tdm_rx_3_port_mixer_controls,
19929 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19930 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19931 sec_tdm_rx_0_port_mixer_controls,
19932 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19933 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19934 sec_tdm_rx_1_port_mixer_controls,
19935 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19936 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19937 sec_tdm_rx_2_port_mixer_controls,
19938 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19939 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19940 sec_tdm_rx_3_port_mixer_controls,
19941 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019942 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19943 sec_tdm_rx_7_port_mixer_controls,
19944 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019945 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19946 tert_tdm_rx_0_port_mixer_controls,
19947 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19948 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19949 tert_tdm_rx_1_port_mixer_controls,
19950 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19951 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19952 tert_tdm_rx_2_port_mixer_controls,
19953 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19954 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19955 tert_tdm_rx_3_port_mixer_controls,
19956 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19957 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19958 quat_tdm_rx_0_port_mixer_controls,
19959 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19960 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19961 quat_tdm_rx_1_port_mixer_controls,
19962 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19963 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19964 quat_tdm_rx_2_port_mixer_controls,
19965 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19966 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19967 quat_tdm_rx_3_port_mixer_controls,
19968 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019969 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19970 quin_tdm_rx_0_port_mixer_controls,
19971 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19972 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19973 quin_tdm_rx_1_port_mixer_controls,
19974 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19975 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19976 quin_tdm_rx_2_port_mixer_controls,
19977 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19978 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19979 quin_tdm_rx_3_port_mixer_controls,
19980 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019981 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19982 int0_mi2s_rx_port_mixer_controls,
19983 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19984 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19985 int4_mi2s_rx_port_mixer_controls,
19986 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019987 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19988 wsa_cdc_dma_rx_0_port_mixer_controls,
19989 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19990 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19991 rx_cdc_dma_rx_0_port_mixer_controls,
19992 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019993 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19994 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19995 ARRAY_SIZE(tx_qchat_mixer_controls)),
19996 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19997 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19998 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19999 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
20000 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
20001 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020002 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
20003 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
20004 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070020005 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
20006 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
20007 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020008 /* lsm mixer definitions */
20009 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
20010 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
20011 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
20012 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
20013 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
20014 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
20015 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
20016 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
20017 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
20018 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
20019 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
20020 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
20021 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
20022 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
20023 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
20024 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
20025 /* Virtual Pins to force backends ON atm */
20026 SND_SOC_DAPM_OUTPUT("BE_OUT"),
20027 SND_SOC_DAPM_INPUT("BE_IN"),
20028
20029 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20030 &slim0_rx_vi_fb_lch_mux),
20031 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20032 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020033 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20034 &wsa_rx_0_vi_fb_lch_mux),
20035 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20036 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020037 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
20038 &mi2s_rx_vi_fb_mux),
20039 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
20040 &int4_mi2s_rx_vi_fb_mono_ch_mux),
20041 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
20042 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
20043
20044 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
20045 &voc_ext_ec_mux),
20046 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
20047 &ext_ec_ref_mux_ul1),
20048 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
20049 &ext_ec_ref_mux_ul2),
20050 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
20051 &ext_ec_ref_mux_ul3),
20052 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
20053 &ext_ec_ref_mux_ul4),
20054 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
20055 &ext_ec_ref_mux_ul5),
20056 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
20057 &ext_ec_ref_mux_ul6),
20058 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
20059 &ext_ec_ref_mux_ul8),
20060 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
20061 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053020062 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
20063 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053020064 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
20065 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020066 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
20067 &ext_ec_ref_mux_ul17),
20068 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
20069 &ext_ec_ref_mux_ul18),
20070 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
20071 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080020072 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
20073 &ext_ec_ref_mux_ul28),
20074 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
20075 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020076};
20077
20078static const struct snd_soc_dapm_route intercon[] = {
20079 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20080 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20081 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20082 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20083 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20084 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20085 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20086 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20087 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20088 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20089 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20090 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20091 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20092 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20093 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20094 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020095 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020096 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
20097
20098 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20099 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20100 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20101 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20102 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20103 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20104 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20105 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20106 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20107 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20108 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20109 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20110 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20111 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20112 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20113 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020114 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020115 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
20116
20117 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20118 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20119 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20120 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20121 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20122 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20123 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20124 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20125 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20126 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20127 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20128 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20129 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20130 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20131 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20132 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020133 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020134 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
20135
20136 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20137 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20138 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20139 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20140 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20141 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20142 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20143 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20144 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20145 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20146 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20147 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20148 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20149 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20150 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20151 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020152 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020153 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
20154
20155 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20156 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20157 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20158 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20159 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20160 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20161 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20162 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20163 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20164 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20165 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20166 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20167 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20168 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20169 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20170 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020171 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020172 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
20173
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020174 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20175 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20176 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20177 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20178 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20179 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20180 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20181 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20182 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20183 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20184 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20185 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20186 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20187 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20188 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20189 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020190 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020191 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
20192
20193 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20194 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20195 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20196 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20197 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20198 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20199 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20200 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20201 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20202 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20203 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20204 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20205 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20206 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20207 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20208 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020209 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020210 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
20211
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020212 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20213 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20214 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20215 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20216 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20217 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20218 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20219 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20220 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20221 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20222 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20223 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20224 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20225 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20226 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20227 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020228 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020229 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
20230
20231 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20232 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20233 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20234 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20235 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20236 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20237 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20238 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20239 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20240 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20241 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20242 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20243 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20244 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20245 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20246 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020247 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020248 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
20249
20250 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20251 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20252 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20253 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20254 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20255 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20256 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20257 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20258 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20259 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20260 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20261 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20262 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20263 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20264 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20265 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020266 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020267 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
20268
20269 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20270 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20271 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20272 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20273 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20274 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20275 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20276 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20277 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20278 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20279 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20280 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20281 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20282 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20283 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20284 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020285 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020286 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
20287
20288 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20289 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20290 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20291 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20292 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20293 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20294 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20295 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20296 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20297 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20298 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20299 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20300 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20301 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20302 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20303 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020304 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020305 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
20306
20307 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
20308 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20309 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20310 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20311 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20312 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20313 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20314 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20315 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20316 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20317 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20318 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20319 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20320 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20321 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20322 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020323 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020324 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20325
20326 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20327 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20328 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20329 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20330 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20331 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20332 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20333 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20334 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20335 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20336 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20337 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20338 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20339 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20340 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20341 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020342 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020343 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20344
20345 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20346 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20347 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20348 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20349 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20350 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20351 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20352 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20353 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20354 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20355 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20356 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20357 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20358 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20359 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20360 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020361 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020362 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20363
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020364 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20365 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20366 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20367 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20368 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20369 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20370 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20371 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20372 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20373 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20374 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20375 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20376 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20377 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20378 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20379 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020380 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020381 {"HDMI", NULL, "HDMI Mixer"},
20382
20383 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20384 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20385 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20386 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20387 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20388 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20389 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20390 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20391 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20392 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20393 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20394 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20395 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20396 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20397 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20398 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020399 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020400 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20401
Karthikeyan Mani57550082018-05-03 18:43:58 -070020402 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20403 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20404 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20405 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20406 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20407 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20408 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20409 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20410 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20411 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20412 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20413 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20414 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20415 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20416 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20417 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020418 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020419 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20420
Ralf Herzc8701f72018-06-20 11:37:35 +020020421 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20422 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20423 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20424 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20425 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20426 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20427 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20428 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20429 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20430 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20431 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20432 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20433 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20434 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20435 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20436 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020437 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020438 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20439
20440 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20441 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20442 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20443 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20444 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20445 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20446 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20447 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20448 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20449 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20450 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20451 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20452 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20453 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20454 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20455 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020456 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020457 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020458
20459 /* incall */
20460 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20461 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20462 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20463 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20464 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20465 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20466 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20467 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20468 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20469 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20470 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20471 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20472 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20473 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20474 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20475
20476 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20477 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20478 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20479 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20480 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20481 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20482 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20483 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20484 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20485 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20486 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20487 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20488 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20489 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20490 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20491 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020492 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020493 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20494
20495 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20496 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20497 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20498 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20499 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20500 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20501 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20502 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20503 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20504 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20505 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20506 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20507 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20508 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20509 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20510 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020511 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020512 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20513
Surendar Karka3ef3d812018-09-28 18:52:35 +053020514 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20515 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20516 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20517 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20518 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20519 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20520 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20521 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20522 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20523 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20524 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20525 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20526 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20527 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20528 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20529 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20530 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20531 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20532
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020533 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20534 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20535 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20536 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20537 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20538 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20539 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20540 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20541 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20542 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20543 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20544 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20545 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20546 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20547 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20548 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020549 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020550 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20551
20552 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20553 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20554 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20555 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20556 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20557 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20558 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20559 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20560 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20561 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020562 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020563 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20564 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020565 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020566 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020567 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020568 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020569 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020570 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020571 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020572 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020573 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020574 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020575 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020576 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020577 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020578 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020579 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020580 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20581 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20582 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20583 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20584 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020585 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20586 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020587 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020588 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020589 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20590 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20591 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020592 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20593 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20594 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20595 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20596 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20597 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020598 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020599 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20600 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20601 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020602 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20603 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020604 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020605 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020606 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020607 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020608 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020609 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020610 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020611 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20612 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020613 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020614 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020615 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020616 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020617 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20618 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20619 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020620 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020621 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20622 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20623 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020624
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020625 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20626 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20627 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20628 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20629 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20630 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20631 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20632 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20633 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20634 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20635 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20636 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20637 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20638 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20639 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20640 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020641 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020642 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20643
20644 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20645 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20646 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20647 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20648 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20649 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20650 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20651 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20652 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20653 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20654 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20655 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20656 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20657 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20658 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020659 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020660 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20661
20662 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20663 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20664 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20665 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20666 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20667 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20668 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20669 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20670 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20671 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20672 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20673 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20674 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20675 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020676 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020677 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20678
20679 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20680 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20681 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20682 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20683 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20684 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20685 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20686 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20687 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20688 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20689 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20690 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20691 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20692 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020693 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020694 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20695
20696 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20697 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20698
20699 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20700 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20701
20702 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20703 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20704 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20705 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20706 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20707 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20708 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20709 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20710 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20711 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20712 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20713 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20714 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20715 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20716 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020717 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020718 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20719
20720 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20721 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20722 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20723 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20724 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20725 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20726 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20727 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20728 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20729 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20730 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20731 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20732 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20733 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20734 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20735 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20736
20737 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20738 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20739 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20740 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20741 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20742 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20743 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20744 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20745 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20746 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20747 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20748 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20749 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20750 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20751 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20752 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20753
20754 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20755 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20756 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20757 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20758 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20759 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20760 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20761 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20762 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20763 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20764 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20765 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20766 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20767 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20768 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20769 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20770 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20771 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20772
20773 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20774 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20775 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20776 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20777 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20778 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20779 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20780 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20781 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20782 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20783 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20784 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20785 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20786 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20787 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20788 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020789 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020790 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20791
20792 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20793 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20794 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20795 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20796 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20797 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20798 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20799 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20800 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20801 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20802 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20803 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20804 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20805 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20806 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20807 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020808 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020809 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20810
20811 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20812 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20813 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20814 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20815 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20816 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20817 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20818 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20819 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20820 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20821 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20822 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20823 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20824 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20825 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20826 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020827 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020828 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20829
20830 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20831 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20832 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20833 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20834 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20835 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20836 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20837 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20838 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20839 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20840 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20841 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20842 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20843 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20844 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20845 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020846 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020847 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20848
20849 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20850 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20851 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20852 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20853 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20854 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20855 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20856 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20857 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20858 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20859 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20860 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20861 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20862 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20863 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20864 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20865 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20866
20867 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20868 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20869 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20870 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20871 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20872 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20873 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20874 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20875 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20876 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20877 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20878 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20879 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20880 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20881 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20882 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020883 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020884 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20885
20886 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20887 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20888 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20889 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20890 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20891 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20892 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20893 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20894 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20895 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20896 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20897 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20898 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20899 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20900 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20901 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020902 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020903 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20904
20905 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20906 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20907 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20908 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20909 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20910 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20911 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20912 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20913 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20914 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20915 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20916 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20917 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20918 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20919 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20920 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020921 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020922 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20923
20924 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20925 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20926 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20927 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20928 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20929 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20930 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20931 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20932 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20933 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20934 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20935 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20936 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20937 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20938 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20939 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020940 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020941 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20942
20943 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20944 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20945 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20946 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20947 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20948 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20949 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20950 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20951 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20952 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20953 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20954 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20955 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20956 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20957 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20958 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20959 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20960
20961 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20962 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20963 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20964 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20965 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20966 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20967 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20968 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20969 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20970 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20971 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20972 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20973 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20974 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20975 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20976 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020977 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020978 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20979
20980 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20981 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20982 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20983 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20984 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20985 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20986 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20987 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20988 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20989 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20990 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20991 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20992 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20993 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20994 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20995 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20996 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20997
20998 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20999 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21000 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21001 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21002 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21003 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21004 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21005 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21006 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21007 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21008 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21009 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21010 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21011 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21012 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21013 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021014 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021015 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
21016
21017 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21018 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21019 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21020 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21021 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21022 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21023 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21024 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21025 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21026 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21027 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21028 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21029 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21030 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21031 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21032 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021033 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021034 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
21035
21036 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21037 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21038 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21039 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21040 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21041 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21042 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21043 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21044 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21045 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21046 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21047 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21048 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21049 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21050 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21051 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021052 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021053 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
21054
21055 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
21056 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
21057 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
21058 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
21059 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
21060 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
21061 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
21062 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
21063 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
21064 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
21065 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
21066 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
21067 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
21068 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
21069 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
21070 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021071 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021072 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
21073
21074 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21075 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21076 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21077 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21078 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21079 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21080 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21081 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21082 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21083 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21084 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21085 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21086 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21087 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21088 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21089 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21090 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021091 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021092 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
21093
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021094 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21095 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21096 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21097 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21098 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21099 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21100 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21101 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21102 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21103 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21104 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21105 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21106 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21107 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21108 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21109 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21110 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
21111
21112 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21113 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21114 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21115 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21116 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21117 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21118 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21119 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21120 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21121 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21122 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21123 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21124 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21125 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21126 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21127 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21128 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021129 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021130 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
21131
21132 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21133 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21134 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21135 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21136 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21137 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21138 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21139 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21140 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21141 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21142 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21143 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21144 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21145 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21146 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21147 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21148 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021149 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021150 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
21151
21152 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21153 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21154 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21155 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21156 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21157 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21158 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21159 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21160 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21161 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21162 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21163 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21164 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21165 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21166 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21167 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21168 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021169 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021170 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
21171
Rohit Kumara5077932017-09-10 22:05:05 +053021172 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21173 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21174 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21175 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21176 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21177 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21178 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21179 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21180 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21181 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21182 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21183 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21184 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21185 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21186 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21187 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21188 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021189 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021190 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
21191
21192 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21193 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21194 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21195 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21196 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21197 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21198 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21199 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21200 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21201 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21202 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21203 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21204 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21205 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21206 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21207 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21208 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
21209
21210 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21211 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21212 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21213 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21214 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21215 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21216 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21217 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21218 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21219 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21220 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21221 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21222 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21223 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21224 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21225 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21226 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021227 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021228 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
21229
21230 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21231 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21232 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21233 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21234 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21235 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21236 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21237 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21238 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21239 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21240 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21241 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21242 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21243 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21244 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21245 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21246 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021247 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021248 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
21249
21250 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21251 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21252 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21253 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21254 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21255 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21256 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21257 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21258 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21259 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21260 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21261 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21262 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21263 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21264 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21265 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21266 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021267 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021268 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
21269
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021270 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
21271 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
21272 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
21273 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
21274 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021275 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021276 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021277 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21278 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21279 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21280 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21281 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21282 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21283 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21284 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21285 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21286 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21287 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21288 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021289 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021290 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21291 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21292 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021293 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021294 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21295 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
21296 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021297 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021298 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21299 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021300 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21301 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
21302 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021303 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021304 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21305 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
21306 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021307 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021308 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021309 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21310 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
21311 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021312 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21313 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21314 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21315 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21316 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21317 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21318 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21319 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021320 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021321 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21322 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21323 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021324 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021325 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21326 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21327 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021328 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021329 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021330 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21331 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21332 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021333 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021334 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021335 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21336 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21337 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21338 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21339 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021340 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21341 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21342 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21343 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021344 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021345
21346 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21347 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21348 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21349 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21350 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21351 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21352 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21353 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21354 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21355 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21356 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21357 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21358 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21359 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21360 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21361 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021362 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021363 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21364 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21365 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21366 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021367 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21368 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21369 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21370 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21371 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021372 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021373 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21374 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21375 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21376 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21377 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21378 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021379 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21380 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021381
21382 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21383 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21384 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21385 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21386 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21387 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21388 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21389 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21390 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21391 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21392 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21393 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21394 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21395 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21396 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21397 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021398 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021399 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21400 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21401 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21402 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021403 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21404 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21405 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21406 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21407 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021408 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021409 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21410 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21411 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21412 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21413 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21414 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021415 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21416 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021417
21418 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21419 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21420 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21421 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21422 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21423 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21424 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21425 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21426 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21427 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21428 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21429 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21430 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21431 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21432 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21433 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021434 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021435 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21436 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21437 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21438 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021439 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21440 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21441 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21442 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21443 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021444 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021445 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21446 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21447 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21448 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21449 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21450 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021451 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21452 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021453
21454 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21455 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21456 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21457 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21458 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21459 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21460 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21461 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21462 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21463 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21464 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21465 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21466 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21467 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21468 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21469 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021470 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021471 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21472 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21473 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21474 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021475 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21476 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21477 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21478 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21479 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021480 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021481 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21482 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21483 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21484 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21485 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21486 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021487 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21488 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021489
21490 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21491 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21492 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21493 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21494 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21495 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21496 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21497 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21498 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21499 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21500 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21501 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21502 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21503 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21504 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21505 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021506 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021507 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21508 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21509 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21510 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021511 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21512 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21513 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21514 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21515 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021516 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021517 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21518 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21519 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21520 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21521 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21522 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021523 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21524 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021525
21526 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21527 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21528 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21529 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21530 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21531 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21532 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21533 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21534 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21535 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21536 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21537 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21538 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21539 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21540 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21541 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021542 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021543 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21544 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21545 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21546 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021547 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21548 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21549 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21550 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21551 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021552 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021553 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21554 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21555 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21556 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21557 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21558 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021559 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21560 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021561
21562 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21563 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21564 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21565 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21566 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21567 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21568 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21569 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21570 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21571 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21572 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21573 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21574 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21575 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21576 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21577 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021578 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021579 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21580 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21581 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21582 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021583 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21584 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21585 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21586 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21587 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021588 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021589 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21590 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21591 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21592 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21593 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21594 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021595 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21596 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021597
Samyak Jain810e42a2019-01-07 17:53:34 +053021598 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021599 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21600 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21601 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21602 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21603 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21604 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21605 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21606 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021607 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21608 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21609 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21610 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021611 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21612 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21613 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21614 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21615 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021616 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021617 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21618 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21619 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21620 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21621 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21622 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021623 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21624 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021625 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021626
Laxminath Kasam38070be2017-08-17 18:21:59 +053021627 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21628 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21629 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21630 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21631 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21632 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21633 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21634 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021635 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21636 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21637 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21638 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21639 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21640 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021641 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021642
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021643 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21644 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21645 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21646 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021647 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021648 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21649 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21650 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21651 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21652 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21653 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21654 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21655 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21656 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21657 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21658 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21659 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21660 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21661 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21662 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21663 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021664 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21665 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21666 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21667 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021668 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21669 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21670 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21671 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21672 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021673 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021674 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21675 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21676 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21677 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21678 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21679 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021680 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21681 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021682 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021683
Derek Chen07c6d1c2018-07-05 10:39:25 -070021684 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21685 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21686 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21687 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21688 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21689 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21690 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21691 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21692 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21693 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21694 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21695 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21696 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21697 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21698 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21699 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21700 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21701 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21702 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21703 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21704 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21705 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021706 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21707 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21708 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21709 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21710 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021711 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021712 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21713 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21714 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21715 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21716 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21717 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21718 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21719 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021720 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021721
Surendar Karkac1cde372018-08-14 18:56:24 +053021722 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021723 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021724 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21725 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021726 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021727 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21728 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21729 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21730 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21731 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21732 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21733 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021734 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021736 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21737 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21738 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21739 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21740 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21741 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021742 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021743
Asish Bhattacharya34504582017-08-08 12:55:01 +053021744 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21745 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21746 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21747 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21748 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21749 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21750 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21751 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21752 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21753 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21754 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21755 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21756 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21757 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21758 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21759 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21760 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021761 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21762 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21763 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21764 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21765 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021766 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021767 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21768 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21769 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21770 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21771 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21772 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021773 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21774 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021775 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021776
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021777 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21778 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21779 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21780 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21781 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21782 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021783 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021784
21785 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21786 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21787 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21788 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21789 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21790 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021791 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021792
21793 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21794 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21795 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21796 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21797 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21798 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021799 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021800
21801 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21802 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21803 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21804 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21805 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21806 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021807 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021808
21809 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21810 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21811 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21812 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21813 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21814 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021815 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021816
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021817 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21818 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21819 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21820 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21821 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21822 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21823 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21824 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21825 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21826 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21827 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21828 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21829 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21830 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21831 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21832 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21833 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21834 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21835
21836 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21837 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21838 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21839 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21840 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21841 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21842 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21843 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21844 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21845 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21846 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21847 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21848 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21849 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21850 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21851 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21852 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21853 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21854
21855 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21856 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21857 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21858 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21859 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21860 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21861 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21862 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21863 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21864 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21865 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21866 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21867 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21868 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21869 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21870 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21871 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21872
21873 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21874 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21875 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21876 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21877 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21878 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21879 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21880 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21881 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21882 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21883 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21884 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21885 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21886 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21887 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21888 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21889 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21890
21891 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21892 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21893 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021894 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021895 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21896 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21897 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021898 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21899 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021900 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21901 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021902 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021903 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21904 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021905 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021906 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21907 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21908 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021909 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21910 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021911 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21912 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21913 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21914
21915 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21916 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21917 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021918 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021919 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21920 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21921 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021922 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21923 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021924 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21925 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021926 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021927 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21928 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21929 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21930 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21931 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21932 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21933 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21934 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21935 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021936 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021937 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021938 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21939 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21940 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21941 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021942 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021943 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021944 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21945 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021946
21947 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21948 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21949 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21950 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21951 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21952 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21953 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21954 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21955 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21956 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21957 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21958 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21959 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21960 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21961 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21962 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021963 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021964 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21965
21966 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21967 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21968 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21969 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21970 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21971 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21972 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21973 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21974 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21975 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21976 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21977 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21978 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21979 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21980 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21981 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021982 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021983 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21984
21985 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21986 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21987 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21988 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21989 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21990 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21991 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21992 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21993 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21994 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21995 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21996 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21997 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21998 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21999 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22000 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22001 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
22002
22003 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22004 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22005 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22006 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22007 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22008 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22009 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22010 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22011 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22012 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22013 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22014 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22015 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22016 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22017 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22018 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22019 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
22020
Rohit Kumara5077932017-09-10 22:05:05 +053022021 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22022 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22023 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22024 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22025 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22026 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22027 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22028 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22029 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22030 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22031 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22032 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22033 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22034 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22035 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22036 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22037 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
22038
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022039 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22040 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22041 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22042 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22043 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22044 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
22045
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022046 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
22047 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22048 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22049 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
22050
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022051 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22052 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22053 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22054 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22055 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22056 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
22057
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022058 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
22059 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022060 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22061 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22062 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22063 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
22064
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022065 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
22066 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022067 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22068 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22069 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22070 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
22071
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022072 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22073 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022074 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22075 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22076 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22077 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
22078
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022079 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
22080 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022081 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22082 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22083 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22084 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
22085
Karthikeyan Mani57550082018-05-03 18:43:58 -070022086 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
22087 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22088 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
22089 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22090 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22091 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
22092
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022093 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22094 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22095 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22096 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22097 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022098 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
22099
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022100 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22101 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22102 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22103 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22104 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22105 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
22106
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022107 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22108 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022109 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22110 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22111 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22112 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
22113
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022114 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22115 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022116 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22117 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22118 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22119 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
22120
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022121 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22122 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022123 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22124 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22125 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22126 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
22127
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022128 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22129 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022130 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22131 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22132 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22133 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
22134
Rohit Kumara5077932017-09-10 22:05:05 +053022135 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22136 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022137 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22138 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22139 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22140 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
22141
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022142 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22143 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22144 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22145 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22146 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22147 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
22148 {"HDMI", NULL, "HDMI_DL_HL"},
22149
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022150 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022151 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22152 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22153 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080022154 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022155 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
22156
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022157 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022158 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22159 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22160 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22161 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22162 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
22163
22164 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22165 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22166 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22167 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22168 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22169 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
22170
22171 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22172 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22173 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22174 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22175 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22176 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
22177
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022178 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022179 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22180 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22181 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22182 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22183 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
22184
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022185 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022186 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22187 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22188 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22189 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
22190
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022191 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022192 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22193 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22194 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22195 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
22196
22197 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22198 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
22199
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022200 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22201 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22202 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
22203
22204 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22205 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22206 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
22207
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022208 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22209 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22210 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22211 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022212 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022213 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070022214 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022215 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022216 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
22217 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
22218
22219 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22220 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22221 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22222 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22223 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22224 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22225 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22226 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22227 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22228 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022229 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22230 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022231
22232 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22233 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22234 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22235 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22236
22237 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22238 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22239 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22240 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22241
22242 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22243 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22244 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22245 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22246
22247 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22248 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22249 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22250 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22251
22252 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22253 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22254 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22255 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22256
22257 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22258 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22259 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22260 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22261
22262 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22263 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22264 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22265 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22266
Laxminath Kasam38070be2017-08-17 18:21:59 +053022267 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22268 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22269 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22270 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22271 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22272 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22273 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22274 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22275 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22276 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022277 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22278 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070022279
22280 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22281 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22282 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22283 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22284
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022285 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22286 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22287 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22288 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22289
22290 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22291 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22292 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22293 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22294
22295 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22296 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22297 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22298 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22299
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022300 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22301 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22302 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22303 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22304
22305 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22306 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22307 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22308 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080022309
22310 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22311 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22312 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22313 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22314 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22315 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22316 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22317 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22318
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022319 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
22320 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
22321 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
22322 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
22323 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
22324 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
22325 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
22326 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022327 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022328 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022329 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
22330 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
22331 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022332 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22333 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022334
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022335 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22336 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22337 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22338 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22339 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22340 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22341 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22342 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22343 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22344 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22345 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22346 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22347 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22348 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22349 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022350 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022351 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022352 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22353 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22354 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22355 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22356 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22357 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022358 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22359
22360 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22361 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22362 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22363 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22364 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22365 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22366 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22367 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22368 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22369 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22370 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22371 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22372 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22373 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22374 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022375 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022376 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22377 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22378 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22379 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22380 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22381 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022382 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22383
22384 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22385 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22386 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22387 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22388 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22389 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22390 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22391 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22392 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22393 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22394 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22395 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22396 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22397 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022398 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022399 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
22400 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22401
22402 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22403 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22404 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22405 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22406 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22407 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22408 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22409 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22410 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22411 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
22412 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22413 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22414 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22415 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22416 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022417 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22418 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22419 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022420 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22421 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22422 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022423 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22424 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22425 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22426 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22427 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22428 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22429 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22430 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022431 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22432 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022433 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022434 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022435 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022436 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22437
22438 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22439 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22440 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22441 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22442 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22443 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22444 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22445 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022446 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22447 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022448 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022449 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022450 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022451 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22452
22453
22454 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22455 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22456 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22457 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22458 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22459 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22460 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22461 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022462 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22463 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022464 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022465 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022466 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022467 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22468
22469
22470 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22471 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22472 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22473 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22474 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22475 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22476 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22477 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022478 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22479 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022480 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022481 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022482 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022483 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22484
22485 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22486 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22487 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22488 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22489 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22490 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22491 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22492 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022493 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22494 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022495 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022496 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022497 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022498 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22499
22500 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22501 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22502 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22503 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22504 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22505 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022506 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22507 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022508 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022509 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022510 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022511 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22512
22513 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22514 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22515 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22516 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22517 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22518 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022519 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22520 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022521 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022522 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022523 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022524 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22525
22526 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22527 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22528 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22529 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22530 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22531 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022532 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22533 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022534 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022535 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022536 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022537 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22538
22539
22540 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22541 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22542 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22543 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22544 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22545 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22546 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22547 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22548 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22549 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22550 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022551 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022552 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22553 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22554 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22555 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22556 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22557 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22558
22559 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22560 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22561 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22562 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22563 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22564 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22565 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22566 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22567 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22568 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22569 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22570 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022571 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22572 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022573 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022574 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022575 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022576 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22577 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22578 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22579 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22580
22581 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22582 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22583 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22584 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22585 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22586 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22587 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22588 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22589 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22590 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22591 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22592
22593 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22594 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022595 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22596 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022597 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22598 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22599 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22600 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22601 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22602 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22603 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22604 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22605 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22606 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22607
22608 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22609 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22610 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22611 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22612 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22613 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22614 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22615 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22616 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22617 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22618 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22619 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22620 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22621 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22622 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22623 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022624 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022625 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22626 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22627 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22628 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022629 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022630 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22631 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22632 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22633 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22634 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22635 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22636 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22637 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22638 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22639 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22640 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22641 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022642 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22643 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22644 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22645 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22646 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22647 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22648 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22649 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022650
22651 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22652 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22653 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22654 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22655 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22656 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22657 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22658 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22659 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22660 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22661 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22662 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22663 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22664 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22665 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22666 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022667 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22668 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22669 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22670 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022671 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22672
22673 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22674 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22675 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22676 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22677 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22678 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22679 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22680 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22681 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22682 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22683 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22684 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22685 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22686 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22687 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22688 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022689 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22690 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22691 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22692 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022693 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22694
22695 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22696 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22697 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22698 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22699 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22700 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22701 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22702 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22703 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22704 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22705 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22706 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22707 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22708 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22709 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22710 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022711 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22712 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22713 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22714 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022715 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22716
22717 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22718 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22719 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22720 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22721 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22722 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22723 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22724 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22725 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22726 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22727 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22728 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22729 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22730 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22731 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22732 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022733 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22734 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22735 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22736 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022737 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22738
22739 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22740 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22741 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22742 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22743 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22744 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22745 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22746 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22747 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22748 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22749 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22750 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22751 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22752 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22753 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22754 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022755 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22756 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22757 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22758 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022759 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22760
22761 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22762 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22763 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22764 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22765 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22766 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22767 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22768 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22769 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22770 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22771 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22772 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22773 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22774 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22775 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22776 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022777 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22778 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22779 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22780 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022781 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22782
22783 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22784 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22785 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22786 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22787 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22788 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22789 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22790 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22791 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22792 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22793 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22794 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22795 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22796 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22797 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22798 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022799 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22800 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22801 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22802 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022803 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22804
22805 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22806 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22807 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22808 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22809 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22810 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22811 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22812 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22813 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22814 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22815 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22816 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22817 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22818 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22819 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22820 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022821 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22822 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22823 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22824 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022825 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22826
Derek Chenfdcc0982018-10-02 15:14:03 -070022827 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22828 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22829
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022830 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22831 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22832 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22833 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22834 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22835 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22836 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22837 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22838 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22839 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22840 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22841 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22842 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22843 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22844 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22845 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022846 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22847 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22848 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22849 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022850 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22851
22852 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22853 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22854 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22855 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22856 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22857 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22858 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22859 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22860 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22861 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22862 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22863 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22864 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22865 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22866 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22867 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022868 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22869 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22870 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22871 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022872 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22873
22874 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22875 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22876 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22877 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22878 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22879 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22880 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22881 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22882 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22883 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22884 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22885 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22886 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22887 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22888 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22889 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022890 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22891 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22892 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22893 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022894 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22895
22896 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22897 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22898 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22899 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22900 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22901 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22902 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22903 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22904 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22905 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22906 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22907 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22908 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22909 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22910 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22911 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022912 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22913 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22914 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22915 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022916 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22917
22918 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22919 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22920 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22921 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22922 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22923 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22924 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22925 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22926 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22927 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22928 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22929 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22930 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22931 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22932 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22933 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022934 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22935 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22936 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22937 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022938 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22939
22940 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22941 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22942 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22943 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22944 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22945 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22946 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22947 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22948 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22949 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22950 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22951 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22952 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22953 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22954 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22955 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022956 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22957 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22958 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22959 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022960 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22961
22962 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22963 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22964 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22965 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22966 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22967 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22968 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22969 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22970 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22971 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22972 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22973 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22974 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22975 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22976 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22977 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022978 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22979 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22980 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22981 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022982 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22983
22984 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22985 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22986 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22987 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22988 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22989 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22990 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22991 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22992 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22993 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22994 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22995 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22996 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22997 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22998 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22999 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023000 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23001 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23002 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23003 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023004 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
23005
Rohit Kumara5077932017-09-10 22:05:05 +053023006 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23007 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23008 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23009 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23010 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23011 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23012 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23013 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23014 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23015 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23016 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23017 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23018 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23019 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23020 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23021 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23022 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23023 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23024 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23025 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023026 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023027
23028 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23029 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23030 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23031 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23032 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23033 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23034 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23035 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23036 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23037 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23038 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23039 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23040 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23041 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23042 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23043 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23044 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23045 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23046 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23047 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023048 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023049
23050 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23051 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23052 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23053 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23054 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23055 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23056 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23057 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23058 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23059 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23060 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23061 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23062 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23063 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23064 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23065 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23066 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23067 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23068 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23069 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023070 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023071
23072 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23073 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23074 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23075 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23076 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23077 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23078 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23079 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23080 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23081 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23082 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23083 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23084 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23085 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23086 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23087 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23088 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23089 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23090 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23091 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023092 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023093
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023094 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23095 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23096 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23097 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023098 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023099 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23100 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23101 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23102 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023103 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023104 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23105 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
23106
23107 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23108 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23109 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23110 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023111 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023112 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23113 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23114 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023115 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023116 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23117 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23118 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
23119
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023120 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23121 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080023122 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023123 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023124 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
23125
23126 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
23127 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023128 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023129 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023130
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023131 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23132 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23133 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23134 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23135 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023136 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023137 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23138 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23139 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23140 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023141 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023142 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23143 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23144 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23145 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23146 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023147 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023148 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23149 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
23150 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23151 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23152 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
23153 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
23154 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
23155 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
23156 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
23157 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
23158
23159
23160 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23161 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23162 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23163 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23164 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023165 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023166 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
23167
23168 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23169 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23170 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023171 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023172 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
23173
23174 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23175 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23176 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23177 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
23178
23179 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23180 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
23181 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23182 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
23183
Rohit Kumara5077932017-09-10 22:05:05 +053023184 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23185 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
23186 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23187 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
23188
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023189 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23190 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23191 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23192 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23193 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23194 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23195 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23196 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023197 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023198 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
23199 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23200 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23201 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23202 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23203 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23204 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23205 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23206 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23207 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23208 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
23209
23210 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23211 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23212 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23213 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23214 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23215 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23216 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23217 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23218 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23219 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23220 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23221 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
23222
23223 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23224 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23225 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23226 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23227 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23228 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23229 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23230 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23231 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23232 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23233 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23234 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
23235
kunleizdf5a00a2017-11-27 15:27:36 +080023236 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23237 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023238 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023239
23240 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23241 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023242 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023243
23244 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23245 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023246 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
23247
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023248 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
23249 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023250 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23251 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23252 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23253 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
23254
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023255 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
23256 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023257 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23258 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23259 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23260 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
23261
23262 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23263 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23264 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23265 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
23266 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23267 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23268 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
23269 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
23270 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23271 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
23272 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
23273 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
23274 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
23275
23276 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23277 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23278 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23279 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23280 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023281 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023282 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23283 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23284 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23285 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23286 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23287 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23288 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23289 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
23290
23291 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23292 {"HDMI", NULL, "HDMI_RX Port Mixer"},
23293
23294 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23295 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
23296
Karthikeyan Mani57550082018-05-03 18:43:58 -070023297 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
23298 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
23299
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023300 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23301 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
23302
23303 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23304 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23305 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
23306
23307 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23308 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23309 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23310 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023311 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023312 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23313 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23314 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23315 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023316 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023317 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
23318
23319 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23320 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23321 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23322 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023323 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023324 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23325 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23326 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023327 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023328 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
23329
23330 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23331 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23332 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23333 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023334 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023335 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23336 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23337 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23338
23339 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23340 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23341 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23342 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023343 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023344 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23345 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23346 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23347 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23348 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23349
Rohit Kumara5077932017-09-10 22:05:05 +053023350 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23351 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23352 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23353 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23354 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23355 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23356 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23357 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23358
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023359 /* Backend Enablement */
23360
23361 {"BE_OUT", NULL, "PRI_I2S_RX"},
23362 {"BE_OUT", NULL, "SEC_I2S_RX"},
23363 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23364 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23365 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23366 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23367 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23368 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23369 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23370 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23371 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023372 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023373 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23374 {"BE_OUT", NULL, "HDMI"},
23375 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023376 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023377 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23378 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023379 {"BE_OUT", NULL, "MI2S_RX"},
23380 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23381 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23382 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23383 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23384 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23385 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23386 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23387 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023388 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23389 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23390 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023391 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23392 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23393 {"BE_OUT", NULL, "INT_FM_RX"},
23394 {"BE_OUT", NULL, "PCM_RX"},
23395 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23396 {"BE_OUT", NULL, "AUX_PCM_RX"},
23397 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23398 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23399 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023400 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023401 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23402 {"BE_OUT", NULL, "INT_FM_RX"},
23403 {"BE_OUT", NULL, "PCM_RX"},
23404 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23405 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23406 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23407 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23408 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23409 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23410 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23411 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23412 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23413 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23414 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023415 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023416 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23417 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23418 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23419 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23420 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23421 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23422 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23423 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23424 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023425 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23426 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23427 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23428 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023429 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23430 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023431 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23432 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23433 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23434 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23435 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23436 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23437 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23438 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023439
23440 {"PRI_I2S_TX", NULL, "BE_IN"},
23441 {"MI2S_TX", NULL, "BE_IN"},
23442 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23443 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23444 {"PRI_MI2S_TX", NULL, "BE_IN"},
23445 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023446 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023447 {"INT2_MI2S_TX", NULL, "BE_IN"},
23448 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023449 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023450 {"INT5_MI2S_TX", NULL, "BE_IN"},
23451 {"SEC_MI2S_TX", NULL, "BE_IN"},
23452 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23453 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23454 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23455 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23456 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23457 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23458 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23459 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23460 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023461 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023462 {"USB_AUDIO_TX", NULL, "BE_IN" },
23463 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23464 {"INT_FM_TX", NULL, "BE_IN"},
23465 {"PCM_TX", NULL, "BE_IN"},
23466 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23467 {"BE_OUT", NULL, "STUB_RX"},
23468 {"STUB_TX", NULL, "BE_IN"},
23469 {"STUB_1_TX", NULL, "BE_IN"},
23470 {"BE_OUT", NULL, "AUX_PCM_RX"},
23471 {"AUX_PCM_TX", NULL, "BE_IN"},
23472 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23473 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23474 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023475 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023476 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23477 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23478 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23479 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023480 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23481 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023482 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23483 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23484 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23485 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
23486 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023487 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23488 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023489 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23490 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23491 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23492 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23493 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23494 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23495 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23496 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23497 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23498 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23499 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23500 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23501 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23502 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23503 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023504 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023505 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23506 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23507 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23508 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023509 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023510 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23511 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23512 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23513 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023514 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23515 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23516 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23517 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23518 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023519 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023520 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23521 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23522 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23523 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23524 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23525 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023526 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23527 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023528};
23529
23530static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23531 struct snd_pcm_hw_params *params)
23532{
23533 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23534 unsigned int be_id = rtd->dai_link->id;
23535
23536 if (be_id >= MSM_BACKEND_DAI_MAX) {
23537 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23538 return -EINVAL;
23539 }
23540
23541 mutex_lock(&routing_lock);
23542 msm_bedais[be_id].sample_rate = params_rate(params);
23543 msm_bedais[be_id].channel = params_channels(params);
23544 msm_bedais[be_id].format = params_format(params);
23545 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23546 __func__, msm_bedais[be_id].sample_rate,
23547 msm_bedais[be_id].format, be_id);
23548 mutex_unlock(&routing_lock);
23549 return 0;
23550}
23551
23552static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23553{
23554 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23555 unsigned int be_id = rtd->dai_link->id;
23556 int i, session_type, path_type, topology;
23557 struct msm_pcm_routing_bdai_data *bedai;
23558 struct msm_pcm_routing_fdai_data *fdai;
23559
23560 pr_debug("%s: substream->pcm->id:%s\n",
23561 __func__, substream->pcm->id);
23562
23563 if (be_id >= MSM_BACKEND_DAI_MAX) {
23564 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23565 return -EINVAL;
23566 }
23567
23568 bedai = &msm_bedais[be_id];
23569 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23570 0 : 1);
23571 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23572 path_type = ADM_PATH_PLAYBACK;
23573 else
23574 path_type = ADM_PATH_LIVE_REC;
23575
23576 mutex_lock(&routing_lock);
23577 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23578 if (!is_mm_lsm_fe_id(i))
23579 continue;
23580 fdai = &fe_dai_map[i][session_type];
23581 if (fdai->strm_id != INVALID_SESSION) {
23582 int idx;
23583 int port_id;
23584 unsigned long copp =
23585 session_copp_map[i][session_type][be_id];
23586 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23587 if (test_bit(idx, &copp))
23588 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023589
23590 if (idx >= MAX_COPPS_PER_PORT) {
23591 pr_debug("%s: copp idx is invalid, exiting\n",
23592 __func__);
23593 continue;
23594 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023595 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023596 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023597 topology = adm_get_topology_for_port_copp_idx(port_id,
23598 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023599 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023600 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023601 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23602 __func__, copp, i, session_type, be_id,
23603 topology);
23604 clear_bit(idx,
23605 &session_copp_map[i][session_type][be_id]);
23606 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023607 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023608 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023609 topology);
23610 }
23611 }
23612
23613 bedai->active = 0;
23614 bedai->sample_rate = 0;
23615 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023616 mutex_unlock(&routing_lock);
23617
23618 return 0;
23619}
23620
23621static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23622{
23623 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23624 unsigned int be_id = rtd->dai_link->id;
23625 int i, path_type, topology;
23626 int session_type = INVALID_SESSION;
23627 struct msm_pcm_routing_bdai_data *bedai;
23628 u32 channels, sample_rate;
23629 uint16_t bits_per_sample = 16, voc_path_type;
23630 struct msm_pcm_routing_fdai_data *fdai;
23631 u32 session_id;
23632 struct media_format_info voc_be_media_format;
23633 bool is_lsm;
23634
23635 pr_debug("%s: substream->pcm->id:%s\n",
23636 __func__, substream->pcm->id);
23637
23638 if (be_id >= MSM_BACKEND_DAI_MAX) {
23639 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23640 return -EINVAL;
23641 }
23642
23643 bedai = &msm_bedais[be_id];
23644
23645 mutex_lock(&routing_lock);
23646 if (bedai->active == 1)
23647 goto done; /* Ignore prepare if back-end already active */
23648
23649 /* AFE port is not active at this point. However, still
23650 * go ahead setting active flag under the notion that
23651 * QDSP6 is able to handle ADM starting before AFE port
23652 * is started.
23653 */
23654 bedai->active = 1;
23655
23656 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23657 if (!(is_mm_lsm_fe_id(i) &&
23658 route_check_fe_id_adm_support(i)))
23659 continue;
23660
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023661 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23662 SESSION_TYPE_RX : SESSION_TYPE_TX;
23663 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023664 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023665 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023666 path_type = ADM_PATH_COMPRESSED_RX;
23667 else
23668 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023669 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023670 if ((fdai->passthr_mode != LEGACY_PCM) &&
23671 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023672 path_type = ADM_PATH_COMPRESSED_TX;
23673 else
23674 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023675 }
23676
23677 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23678 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023679 if (fdai->strm_id != INVALID_SESSION) {
23680 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023681 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023682
23683 if (session_type == SESSION_TYPE_TX &&
23684 fdai->be_srate &&
23685 (fdai->be_srate != bedai->sample_rate)) {
23686 pr_debug("%s: flush strm %d diff BE rates\n",
23687 __func__,
23688 fdai->strm_id);
23689
23690 if (fdai->event_info.event_func)
23691 fdai->event_info.event_func(
23692 MSM_PCM_RT_EVT_BUF_RECFG,
23693 fdai->event_info.priv_data);
23694 fdai->be_srate = 0; /* might not need it */
23695 }
23696 bits_per_sample = msm_routing_get_bit_width(
23697 bedai->format);
23698
23699 app_type =
23700 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23701 if (app_type && is_lsm) {
23702 app_type_idx =
23703 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23704 sample_rate =
23705 fe_dai_app_type_cfg[i][session_type][be_id]
23706 .sample_rate;
23707 bits_per_sample =
23708 lsm_app_type_cfg[app_type_idx].bit_width;
23709 } else if (app_type) {
23710 app_type_idx =
23711 msm_pcm_routing_get_app_type_idx(app_type);
23712 sample_rate =
23713 fe_dai_app_type_cfg[i][session_type]
23714 [be_id].sample_rate;
23715 bits_per_sample =
23716 app_type_cfg[app_type_idx].bit_width;
23717 } else
23718 sample_rate = bedai->sample_rate;
23719 /*
23720 * check if ADM needs to be configured with different
23721 * channel mapping than backend
23722 */
23723 if (!bedai->adm_override_ch)
23724 channels = bedai->channel;
23725 else
23726 channels = bedai->adm_override_ch;
23727 acdb_dev_id =
23728 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23729 topology = msm_routing_get_adm_topology(i, session_type,
23730 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023731
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023732 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23733 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23734 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023735 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23736
Surendar Karkae7507512018-07-20 15:46:54 +053023737 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023738 sample_rate, channels, topology,
23739 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023740 app_type, acdb_dev_id,
23741 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023742 if ((copp_idx < 0) ||
23743 (copp_idx >= MAX_COPPS_PER_PORT)) {
23744 pr_err("%s: adm open failed\n", __func__);
23745 mutex_unlock(&routing_lock);
23746 return -EINVAL;
23747 }
23748 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23749 __func__, i, session_type, be_id);
23750 set_bit(copp_idx,
23751 &session_copp_map[i][session_type][be_id]);
23752
23753 if (msm_is_resample_needed(
23754 sample_rate,
23755 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023756 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023757 bedai->sample_rate);
23758
23759 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023760 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023761 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023762 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023763 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023764 topology, channels);
23765 }
23766 }
23767
23768 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23769 session_id = msm_pcm_routing_get_voc_sessionid(i);
23770 if (session_id) {
23771 pr_debug("%s voice session_id: 0x%x\n", __func__,
23772 session_id);
23773
23774 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23775 voc_path_type = RX_PATH;
23776 else
23777 voc_path_type = TX_PATH;
23778
23779 voc_set_route_flag(session_id, voc_path_type, 1);
23780
23781 memset(&voc_be_media_format, 0,
23782 sizeof(struct media_format_info));
23783
23784 voc_be_media_format.port_id = bedai->port_id;
23785 voc_be_media_format.num_channels = bedai->channel;
23786 voc_be_media_format.sample_rate = bedai->sample_rate;
23787 voc_be_media_format.bits_per_sample = bedai->format;
23788 /* Defaulting this to 1 for voice call usecases */
23789 voc_be_media_format.channel_mapping[0] = 1;
23790
23791 voc_set_device_config(session_id, voc_path_type,
23792 &voc_be_media_format);
23793
23794 if (voc_get_route_flag(session_id, RX_PATH) &&
23795 voc_get_route_flag(session_id, TX_PATH))
23796 voc_enable_device(session_id);
23797 }
23798 }
23799
23800 /* Check if backend is an external ec ref port and set as needed */
23801 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23802
23803 memset(&voc_be_media_format, 0,
23804 sizeof(struct media_format_info));
23805
23806 /* Get format info for ec ref port from msm_bedais[] */
23807 voc_be_media_format.port_id = bedai->port_id;
23808 voc_be_media_format.num_channels = bedai->channel;
23809 voc_be_media_format.bits_per_sample = bedai->format;
23810 voc_be_media_format.sample_rate = bedai->sample_rate;
23811 /* Defaulting this to 1 for voice call usecases */
23812 voc_be_media_format.channel_mapping[0] = 1;
23813 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23814 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23815 __func__, voc_be_media_format.port_id,
23816 voc_be_media_format.num_channels,
23817 voc_be_media_format.bits_per_sample,
23818 voc_be_media_format.sample_rate);
23819 }
23820
23821done:
23822 mutex_unlock(&routing_lock);
23823
23824 return 0;
23825}
23826
23827static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23828 int fe_id)
23829{
23830 int index, topo_id, be_idx;
23831 unsigned long pp_config = 0;
23832 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023833 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023834 bool compr_passthr_mode = true;
23835
23836 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23837
23838 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23839 pr_err("%s: Device pp params on invalid port %d\n",
23840 __func__, port_id);
23841 return -EINVAL;
23842 }
23843
23844 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23845 if (port_id == msm_bedais[be_idx].port_id)
23846 break;
23847 }
23848
23849 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23850 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23851 return -EINVAL;
23852 }
23853
23854 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23855 if (msm_bedais_pp_params[index].port_id == port_id)
23856 break;
23857 }
23858 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23859 pr_err("%s: Invalid backend pp params index %d\n",
23860 __func__, index);
23861 return -EINVAL;
23862 }
23863
23864 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23865 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23866 pr_err("%s: Invalid passthrough topology 0x%x\n",
23867 __func__, topo_id);
23868 return -EINVAL;
23869 }
23870
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023871 session_type =
23872 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23873 SESSION_TYPE_RX : SESSION_TYPE_TX;
23874
23875 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23876 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023877 compr_passthr_mode = false;
23878
23879 pp_config = msm_bedais_pp_params[index].pp_params_config;
23880 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23881 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23882 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23883 mute_on = msm_bedais_pp_params[index].mute_on;
23884 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23885 adm_send_compressed_device_mute(port_id,
23886 copp_idx,
23887 mute_on);
23888 }
23889 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23890 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23891 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23892 &pp_config);
23893 latency = msm_bedais_pp_params[index].latency;
23894 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23895 adm_send_compressed_device_latency(port_id,
23896 copp_idx,
23897 latency);
23898 }
23899 return 0;
23900}
23901
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023902static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23903{
23904 uint32_t topology = NULL_COPP_TOPOLOGY;
23905 void *cal_info = NULL;
23906 uint32_t size = 0;
23907
23908 /* Retrieve cal_info size from cal data*/
23909 size = data_size - sizeof(struct audio_cal_type_basic);
23910 cal_info = kzalloc(size, GFP_KERNEL);
23911
23912 if (!cal_info)
23913 goto done;
23914
23915 memcpy(cal_info,
23916 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23917
23918 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23919 kfree(cal_info);
23920 cal_info = NULL;
23921
23922done:
23923 pr_debug("%s: Using topology %d\n", __func__, topology);
23924
23925 return topology;
23926}
23927
23928static void msm_routing_load_topology(size_t data_size, void *data)
23929{
23930 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023931 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023932
23933 topology_id = msm_routing_get_topology(data_size, data);
23934 if (topology_id != NULL_COPP_TOPOLOGY)
23935 ret = q6core_load_unload_topo_modules(topology_id,
23936 CORE_LOAD_TOPOLOGY);
23937 if (ret < 0)
23938 pr_debug("%s %d load topology failed\n",
23939 __func__, topology_id);
23940
23941}
23942
23943static void msm_routing_unload_topology(uint32_t topology_id)
23944{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023945 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023946
23947 if (topology_id != NULL_COPP_TOPOLOGY)
23948 ret = q6core_load_unload_topo_modules(topology_id,
23949 CORE_UNLOAD_TOPOLOGY);
23950 if (ret < 0)
23951 pr_debug("%s %d unload topology failed\n",
23952 __func__, topology_id);
23953
23954}
23955
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023956static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23957 struct snd_ctl_elem_value *ucontrol)
23958{
23959 int pp_id = ucontrol->value.integer.value[0];
23960 int port_id = 0;
23961 int index, be_idx, i, topo_id, idx;
23962 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023963 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023964 bool compr_passthr_mode = true;
23965
23966 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23967
23968 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23969 port_id = msm_bedais[be_idx].port_id;
23970 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23971 break;
23972 }
23973
23974 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23975 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23976 return -EINVAL;
23977 }
23978
23979 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23980 if (msm_bedais_pp_params[index].port_id == port_id)
23981 break;
23982 }
23983 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23984 pr_err("%s: Invalid pp params backend index %d\n",
23985 __func__, index);
23986 return -EINVAL;
23987 }
23988
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023989 session_type =
23990 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23991 SESSION_TYPE_RX : SESSION_TYPE_TX;
23992
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023993 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23994 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023995 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23996 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023997 compr_passthr_mode = false;
23998
23999 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24000 unsigned long copp =
24001 session_copp_map[i]
24002 [SESSION_TYPE_RX][be_idx];
24003 if (!test_bit(idx, &copp))
24004 continue;
24005 topo_id = adm_get_topology_for_port_copp_idx(port_id,
24006 idx);
24007 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
24008 continue;
24009 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
24010 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024011 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024012 switch (pp_id) {
24013 case ADM_PP_PARAM_MUTE_ID:
24014 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
24015 mute = ucontrol->value.integer.value[1] ? true : false;
24016 msm_bedais_pp_params[index].mute_on = mute;
24017 set_bit(ADM_PP_PARAM_MUTE_BIT,
24018 &msm_bedais_pp_params[index].pp_params_config);
24019 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24020 adm_send_compressed_device_mute(port_id,
24021 idx, mute);
24022 break;
24023 case ADM_PP_PARAM_LATENCY_ID:
24024 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
24025 msm_bedais_pp_params[index].latency =
24026 ucontrol->value.integer.value[1];
24027 set_bit(ADM_PP_PARAM_LATENCY_BIT,
24028 &msm_bedais_pp_params[index].pp_params_config);
24029 latency = msm_bedais_pp_params[index].latency =
24030 ucontrol->value.integer.value[1];
24031 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24032 adm_send_compressed_device_latency(port_id,
24033 idx, latency);
24034 break;
24035 default:
24036 pr_info("%s, device pp param %d not supported\n",
24037 __func__, pp_id);
24038 break;
24039 }
24040 }
24041 }
24042 return 0;
24043}
24044
24045static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
24046 struct snd_ctl_elem_value *ucontrol)
24047{
24048 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
24049 return 0;
24050}
24051
24052static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
24053 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
24054 0, 3, msm_routing_get_device_pp_params_mixer,
24055 msm_routing_put_device_pp_params_mixer),
24056};
24057
24058static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
24059 struct snd_ctl_elem_value *ucontrol)
24060{
24061 ucontrol->value.integer.value[0] =
24062 core_get_license_status(ASM_MEDIA_FMT_APTX);
24063 pr_debug("%s: status %ld\n", __func__,
24064 ucontrol->value.integer.value[0]);
24065 return 0;
24066}
24067
24068static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
24069 struct snd_ctl_elem_value *ucontrol)
24070{
24071 int32_t status = 0;
24072
24073 status = core_set_license(ucontrol->value.integer.value[0],
24074 APTX_CLASSIC_DEC_LICENSE_ID);
24075 pr_debug("%s: status %d\n", __func__, status);
24076 return status;
24077}
24078
24079static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
24080 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
24081 0xFFFF, 0, msm_aptx_dec_license_control_get,
24082 msm_aptx_dec_license_control_put),
24083};
24084
24085static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
24086 struct snd_ctl_elem_info *uinfo)
24087{
24088 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
24089 uinfo->count = sizeof(be_dai_name_table);
24090 return 0;
24091}
24092
24093static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
24094 unsigned int __user *bytes,
24095 unsigned int size)
24096{
24097 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024098 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024099
24100 if (size < sizeof(be_dai_name_table)) {
24101 pr_err("%s: invalid size %d requested, returning\n",
24102 __func__, size);
24103 ret = -EINVAL;
24104 goto done;
24105 }
24106
24107 /*
24108 * Fill be_dai_name_table from msm_bedais table to reduce code changes
24109 * needed when adding new backends
24110 */
24111 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24112 be_dai_name_table[i].be_id = i;
24113 strlcpy(be_dai_name_table[i].be_name,
24114 msm_bedais[i].name,
24115 LPASS_BE_NAME_MAX_LENGTH);
24116 }
24117
24118 ret = copy_to_user(bytes, &be_dai_name_table,
24119 sizeof(be_dai_name_table));
24120 if (ret) {
24121 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
24122 ret = -EFAULT;
24123 }
24124
24125done:
24126 return ret;
24127}
24128
24129static const struct snd_kcontrol_new
24130 msm_routing_be_dai_name_table_mixer_controls[] = {
24131 {
24132 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
24133 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
24134 .info = msm_routing_be_dai_name_table_info,
24135 .name = "Backend DAI Name Table",
24136 .tlv.c = snd_soc_bytes_tlv_callback,
24137 .private_value = (unsigned long) &(struct soc_bytes_ext) {
24138 .max = sizeof(be_dai_name_table),
24139 .get = msm_routing_be_dai_name_table_tlv_get,
24140 }
24141 },
24142};
24143
24144static int msm_routing_stereo_channel_reverse_control_get(
24145 struct snd_kcontrol *kcontrol,
24146 struct snd_ctl_elem_value *ucontrol)
24147{
24148 ucontrol->value.integer.value[0] = swap_ch;
24149 pr_debug("%s: Swap channel value: %ld\n", __func__,
24150 ucontrol->value.integer.value[0]);
24151 return 0;
24152}
24153
24154static int msm_routing_stereo_channel_reverse_control_put(
24155 struct snd_kcontrol *kcontrol,
24156 struct snd_ctl_elem_value *ucontrol)
24157{
24158 int i, idx, be_index, port_id;
24159 int ret = 0;
24160 unsigned long copp;
24161
24162 pr_debug("%s Swap channel value:%ld\n", __func__,
24163 ucontrol->value.integer.value[0]);
24164
24165 swap_ch = ucontrol->value.integer.value[0];
24166
24167 mutex_lock(&routing_lock);
24168 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
24169 port_id = msm_bedais[be_index].port_id;
24170 if (!msm_bedais[be_index].active)
24171 continue;
24172
24173 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
24174 MSM_FRONTEND_DAI_MM_SIZE) {
24175 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
24176 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24177 if (!test_bit(idx, &copp))
24178 continue;
24179
24180 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
24181 __func__, port_id, idx);
24182 ret = adm_swap_speaker_channels(
24183 port_id, idx,
24184 msm_bedais[be_index].sample_rate,
24185 swap_ch);
24186 if (ret) {
24187 pr_err("%s:Swap_channel failed, err=%d\n",
24188 __func__, ret);
24189 goto done;
24190 }
24191 }
24192 }
24193 }
24194done:
24195 mutex_unlock(&routing_lock);
24196 return ret;
24197}
24198
24199static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
24200 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
24201 1, 0, msm_routing_stereo_channel_reverse_control_get,
24202 msm_routing_stereo_channel_reverse_control_put),
24203};
24204
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024205static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
24206 struct snd_ctl_elem_info *uinfo)
24207{
24208 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
24209 uinfo->count = 1;
24210 return 0;
24211}
24212
24213static int msm_routing_instance_id_support_put(
24214 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24215{
24216 bool supported = ucontrol->value.integer.value[0] ? true : false;
24217
24218 q6common_update_instance_id_support(supported);
24219 return 0;
24220}
24221
24222static int msm_routing_instance_id_support_get(
24223 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24224{
24225 bool supported = false;
24226
24227 supported = q6common_is_instance_id_supported();
24228 ucontrol->value.integer.value[0] = supported ? 1 : 0;
24229
24230 return 0;
24231}
24232
24233static const struct snd_kcontrol_new
24234 msm_routing_feature_support_mixer_controls[] = {
24235 {
24236 .access = SNDRV_CTL_ELEM_ACCESS_READ |
24237 SNDRV_CTL_ELEM_ACCESS_WRITE,
24238 .info = msm_routing_instance_id_support_info,
24239 .name = "Instance ID Support",
24240 .put = msm_routing_instance_id_support_put,
24241 .get = msm_routing_instance_id_support_get,
24242 },
24243};
24244
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024245static const struct snd_pcm_ops msm_routing_pcm_ops = {
24246 .hw_params = msm_pcm_routing_hw_params,
24247 .close = msm_pcm_routing_close,
24248 .prepare = msm_pcm_routing_prepare,
24249};
24250
24251/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080024252static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024253{
Meng Wangee084a02018-09-04 16:11:58 +080024254 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024255 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080024256 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024257 ARRAY_SIZE(intercon));
24258
Meng Wangee084a02018-09-04 16:11:58 +080024259 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024260
Meng Wangee084a02018-09-04 16:11:58 +080024261 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024262 ARRAY_SIZE(lsm_controls));
24263
Meng Wangee084a02018-09-04 16:11:58 +080024264 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024265 ARRAY_SIZE(aanc_slim_0_rx_mux));
24266
Meng Wangee084a02018-09-04 16:11:58 +080024267 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053024268 ARRAY_SIZE(aanc_noise_level));
24269
Meng Wangee084a02018-09-04 16:11:58 +080024270 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024271 ARRAY_SIZE(msm_voc_session_controls));
24272
Meng Wangee084a02018-09-04 16:11:58 +080024273 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024274 ARRAY_SIZE(app_type_cfg_controls));
24275
Meng Wangee084a02018-09-04 16:11:58 +080024276 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024277 ARRAY_SIZE(lsm_app_type_cfg_controls));
24278
Meng Wangee084a02018-09-04 16:11:58 +080024279 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070024280 ARRAY_SIZE(module_cfg_controls));
24281
Meng Wangee084a02018-09-04 16:11:58 +080024282 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024283 stereo_to_custom_stereo_controls,
24284 ARRAY_SIZE(stereo_to_custom_stereo_controls));
24285
Meng Wangee084a02018-09-04 16:11:58 +080024286 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024287 ARRAY_SIZE(ec_ref_param_controls));
24288
Meng Wangee084a02018-09-04 16:11:58 +080024289 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024290 ARRAY_SIZE(channel_mixer_controls));
24291
Meng Wangee084a02018-09-04 16:11:58 +080024292 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024293
Meng Wangee084a02018-09-04 16:11:58 +080024294 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024295
Meng Wangee084a02018-09-04 16:11:58 +080024296 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024297
Meng Wangee084a02018-09-04 16:11:58 +080024298 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024299 use_ds1_or_ds2_controls,
24300 ARRAY_SIZE(use_ds1_or_ds2_controls));
24301
Meng Wangee084a02018-09-04 16:11:58 +080024302 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024303 device_pp_params_mixer_controls,
24304 ARRAY_SIZE(device_pp_params_mixer_controls));
24305
Meng Wangee084a02018-09-04 16:11:58 +080024306 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024307 msm_routing_be_dai_name_table_mixer_controls,
24308 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
24309
Meng Wangee084a02018-09-04 16:11:58 +080024310 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024311 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024312 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024313 ARRAY_SIZE(adm_channel_config_controls));
24314
Meng Wangee084a02018-09-04 16:11:58 +080024315 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024316 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024317 snd_soc_add_component_controls(component,
24318 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024319 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080024320 snd_soc_add_component_controls(
24321 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024322 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
24323
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024324 return 0;
24325}
24326
24327int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
24328{
24329 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
24330}
24331
24332void msm_routing_pcm_free(struct snd_pcm *pcm)
24333{
24334 msm_pcm_routing_hwdep_free(pcm);
24335}
24336
Meng Wangee084a02018-09-04 16:11:58 +080024337static struct snd_soc_component_driver msm_soc_routing_component = {
24338 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024339 .ops = &msm_routing_pcm_ops,
24340 .probe = msm_routing_probe,
24341 .pcm_new = msm_routing_pcm_new,
24342 .pcm_free = msm_routing_pcm_free,
24343};
24344
24345static int msm_routing_pcm_probe(struct platform_device *pdev)
24346{
24347
24348 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024349 return snd_soc_register_component(&pdev->dev,
24350 &msm_soc_routing_component,
24351 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024352}
24353
24354static int msm_routing_pcm_remove(struct platform_device *pdev)
24355{
Meng Wangee084a02018-09-04 16:11:58 +080024356 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024357 return 0;
24358}
24359
24360static const struct of_device_id msm_pcm_routing_dt_match[] = {
24361 {.compatible = "qcom,msm-pcm-routing"},
24362 {}
24363};
24364MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24365
24366static struct platform_driver msm_routing_pcm_driver = {
24367 .driver = {
24368 .name = "msm-pcm-routing",
24369 .owner = THIS_MODULE,
24370 .of_match_table = msm_pcm_routing_dt_match,
24371 },
24372 .probe = msm_routing_pcm_probe,
24373 .remove = msm_routing_pcm_remove,
24374};
24375
24376int msm_routing_check_backend_enabled(int fedai_id)
24377{
24378 int i;
24379
24380 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24381 /* bad ID assigned in machine driver */
24382 pr_err("%s: bad MM ID\n", __func__);
24383 return 0;
24384 }
24385 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24386 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24387 return msm_bedais[i].active;
24388 }
24389 return 0;
24390}
24391
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024392static int get_cal_type_index(int32_t cal_type)
24393{
24394 int ret = -EINVAL;
24395
24396 switch (cal_type) {
24397 case ADM_TOPOLOGY_CAL_TYPE:
24398 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24399 break;
24400 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24401 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24402 break;
24403 default:
24404 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24405 }
24406 return ret;
24407}
24408
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024409static int msm_routing_set_cal(int32_t cal_type,
24410 size_t data_size, void *data)
24411{
24412 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024413 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024414 pr_debug("%s\n", __func__);
24415
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024416 cal_index = get_cal_type_index(cal_type);
24417 if (cal_index < 0) {
24418 pr_err("%s: Could not get cal index %d\n",
24419 __func__, cal_index);
24420 ret = -EINVAL;
24421 goto done;
24422 }
24423
24424 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024425 if (ret < 0) {
24426 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24427 __func__, ret, cal_type);
24428 ret = -EINVAL;
24429 goto done;
24430 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024431 /* Pre-load if it is ADM topology */
24432 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24433 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24434 msm_routing_load_topology(data_size, data);
24435 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024436done:
24437 return ret;
24438}
24439
24440static void msm_routing_delete_cal_data(void)
24441{
24442 pr_debug("%s\n", __func__);
24443
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024444 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024445}
24446
24447static int msm_routing_init_cal_data(void)
24448{
24449 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024450 struct cal_type_info cal_type_info[] = {
24451 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024452 {NULL, NULL, NULL,
24453 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024454 {NULL, NULL, cal_utils_match_buf_num} },
24455
24456 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24457 {NULL, NULL, NULL,
24458 msm_routing_set_cal, NULL, NULL} },
24459 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024460 };
24461 pr_debug("%s\n", __func__);
24462
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024463 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24464 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024465 if (ret < 0) {
24466 pr_err("%s: could not create cal type!\n",
24467 __func__);
24468 ret = -EINVAL;
24469 goto err;
24470 }
24471
24472 return ret;
24473err:
24474 msm_routing_delete_cal_data();
24475 return ret;
24476}
24477
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024478int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024479{
24480 mutex_init(&routing_lock);
24481 if (msm_routing_init_cal_data())
24482 pr_err("%s: could not init cal data!\n", __func__);
24483
24484 afe_set_routing_callback(
24485 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
24486
24487 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24488 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24489
24490 return platform_driver_register(&msm_routing_pcm_driver);
24491}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024492
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024493void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024494{
24495 msm_routing_delete_cal_data();
24496 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24497 mutex_destroy(&routing_lock);
24498 platform_driver_unregister(&msm_routing_pcm_driver);
24499}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024500
24501MODULE_DESCRIPTION("MSM routing platform driver");
24502MODULE_LICENSE("GPL v2");