blob: 936f97fc13d4612d24b20302d16184f70caca3cc [file] [log] [blame]
Meng Wang43bbb872018-12-10 12:32:05 +08001// SPDX-License-Identifier: GPL-2.0-only
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08002/* Copyright (c) 2012-2018, 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;
73static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
74static int msm_ec_ref_sampling_rate = 48000;
75static uint32_t voc_session_id = ALL_SESSION_VSID;
76static int msm_route_ext_ec_ref;
77static bool is_custom_stereo_on;
78static bool is_ds2_on;
79static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053080static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080081static int num_app_cfg_types;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053082
83#define WEIGHT_0_DB 0x4000
84/* all the FEs which can support channel mixer */
85static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
86/* input BE for each FE */
87static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
88
89enum {
90 MADNONE,
91 MADAUDIO,
92 MADBEACON,
93 MADULTRASOUND,
94 MADSWAUDIO,
95};
96
97#define ADM_LSM_PORT_INDEX 9
98
99#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
100#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
101#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
102#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
103#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
104#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
105#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
106#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
107#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
108#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530109#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
110#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530111#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530112#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530113
114#define LSM_FUNCTION_TEXT "LSM Function"
115static const char * const lsm_port_text[] = {
116 "None",
117 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
118 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
119 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530120 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530121 TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530122};
123
124struct msm_pcm_route_bdai_pp_params {
125 u16 port_id; /* AFE port ID */
126 unsigned long pp_params_config;
127 bool mute_on;
128 int latency;
129};
130
131static struct msm_pcm_route_bdai_pp_params
132 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
133 {HDMI_RX, 0, 0, 0},
134 {DISPLAY_PORT_RX, 0, 0, 0},
135};
136
137/*
138 * The be_dai_name_table is passed to HAL so that it can specify the
139 * BE ID for the BE it wants to enable based on the name. Thus there
140 * is a matching table and structure in HAL that need to be updated
141 * if any changes to these are made.
142 */
143struct msm_pcm_route_bdai_name {
144 unsigned int be_id;
145 char be_name[LPASS_BE_NAME_MAX_LENGTH];
146};
147static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
148
149static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
150 int fe_id);
151
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700152static void msm_routing_load_topology(size_t data_size, void *data);
153static void msm_routing_unload_topology(uint32_t topology_id);
154
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530155static int msm_routing_get_bit_width(unsigned int format)
156{
157 int bit_width;
158
159 switch (format) {
160 case SNDRV_PCM_FORMAT_S32_LE:
161 bit_width = 32;
162 break;
163 case SNDRV_PCM_FORMAT_S24_LE:
164 case SNDRV_PCM_FORMAT_S24_3LE:
165 bit_width = 24;
166 break;
167 case SNDRV_PCM_FORMAT_S16_LE:
168 default:
169 bit_width = 16;
170 }
171 return bit_width;
172}
173
174static bool msm_is_resample_needed(int input_sr, int output_sr)
175{
176 bool rc = false;
177
178 if (input_sr != output_sr)
179 rc = true;
180
181 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
182 (rc ? "oh yes" : "not really"),
183 input_sr, output_sr);
184
185 return rc;
186}
187
188static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
189 int channels)
190{
191 int rc = 0;
192
193 switch (topology) {
194 case SRS_TRUMEDIA_TOPOLOGY_ID:
195 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
196 msm_dts_srs_tm_init(port_id, copp_idx);
197 break;
198 case DS2_ADM_COPP_TOPOLOGY_ID:
199 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
200 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
201 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
202 is_custom_stereo_on);
203 if (rc < 0)
204 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
205 __func__, topology, port_id,
206 is_custom_stereo_on, rc);
207 break;
208 case DOLBY_ADM_COPP_TOPOLOGY_ID:
209 if (is_ds2_on) {
210 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
211 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
212 is_custom_stereo_on);
213 if (rc < 0)
214 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
215 __func__, topology, port_id, rc);
216 } else {
217 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
218 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
219 is_custom_stereo_on);
220 if (rc < 0)
221 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
222 __func__, topology, port_id, rc);
223 }
224 break;
225 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
226 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
227 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
228 if (rc < 0)
229 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
230 __func__, topology, port_id, copp_idx, rc);
231 break;
232 default:
233 /* custom topology specific feature param handlers */
234 break;
235 }
236}
237
238static void msm_pcm_routing_deinit_pp(int port_id, int topology)
239{
240 switch (topology) {
241 case SRS_TRUMEDIA_TOPOLOGY_ID:
242 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
243 msm_dts_srs_tm_deinit(port_id);
244 break;
245 case DS2_ADM_COPP_TOPOLOGY_ID:
246 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
247 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
248 msm_ds2_dap_deinit(port_id);
249 break;
250 case DOLBY_ADM_COPP_TOPOLOGY_ID:
251 if (is_ds2_on) {
252 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
253 msm_ds2_dap_deinit(port_id);
254 } else {
255 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
256 msm_dolby_dap_deinit(port_id);
257 }
258 break;
259 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
260 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
261 msm_qti_pp_asphere_deinit(port_id);
262 break;
263 default:
264 /* custom topology specific feature deinit handlers */
265 break;
266 }
267}
268
269static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
270 int path_type, int perf_mode)
271{
272 int itr = 0, rc = 0;
273
274 if ((path_type == ADM_PATH_PLAYBACK) &&
275 (perf_mode == LEGACY_PCM_MODE) &&
276 is_custom_stereo_on) {
277 for (itr = 0; itr < payload.num_copps; itr++) {
278 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
279 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
280 continue;
281 }
282
283 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
284 payload.port_id[itr],
285 payload.copp_idx[itr],
286 payload.session_id,
287 Q14_GAIN_ZERO_POINT_FIVE,
288 Q14_GAIN_ZERO_POINT_FIVE,
289 Q14_GAIN_ZERO_POINT_FIVE,
290 Q14_GAIN_ZERO_POINT_FIVE);
291 if (rc < 0)
292 pr_err("%s: err setting custom stereo\n",
293 __func__);
294 }
295 }
296}
297
298#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
299struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530300 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
301 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
302 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
303 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
304 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
305 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
306 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
307 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
308 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
309 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530310 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530311 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530312 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530313 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530314 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530315 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530316 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530317 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530318 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530319 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530320 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530321 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530322 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530323 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530324 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530325 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
326 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
327 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
328 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
329 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
330 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
331 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
332 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
333 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
334 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
335 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
336 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
337 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
338 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
339 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
340 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
341 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
342 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
343 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
344 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
345 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
346 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
347 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530348 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530349 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530350 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530351 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530352 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530353 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530354 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530355 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530356 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530357 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530358 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530359 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530360 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530361 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530362 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530363 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530364 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530365 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530366 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530367 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530368 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530369 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200370 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530371 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530372 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530373 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530374 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530375 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530376 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530377 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530378 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530379 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530380 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530381 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530382 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530383 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530384 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530385 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530386 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530387 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530388 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530389 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530390 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530391 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530392 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530393 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530394 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530395 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530396 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530397 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530398 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530399 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530400 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530401 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530402 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530403 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530404 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530405 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530406 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530407 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530408 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530409 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530410 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530411 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530412 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530413 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530414 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530415 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530416 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530417 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530418 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530419 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530420 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530421 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530422 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530423 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530424 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530425 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530426 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530427 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530428 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530429 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530430 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530431 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530432 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530433 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530434 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530435 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530436 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530437 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530438 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530439 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530440 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530441 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530442 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530443 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530444 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530445 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530446 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530447 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530448 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530449 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530450 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530451 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530452 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530453 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530454 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530455 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530456 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530457 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530458 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530459 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530460 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530461 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530462 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530463 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530464 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530465 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530466 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530467 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530468 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530469 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530470 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530471 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530472 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530473 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530474 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530475 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530476 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530477 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530478 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530479 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530480 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530481 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530482 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530483 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530484 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530485 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530486 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530487 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530488 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530489 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530490 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530491 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530492 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530493 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530494 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530495 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530496 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530497 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530498 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530499 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530500 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530501 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530502 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530503 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530504 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530505 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530506 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530507 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530508 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530509 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530510 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530511 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530512 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530513 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530514 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530515 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530516 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530517 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530518 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530519 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530520 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530521 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530522 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530523 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530524 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530525 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530526 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530527 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530528 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530529 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530530 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530531 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530532 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530533 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530534 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530535 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530536 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530537 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530538 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530539 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530540 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530541 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530542 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530543 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530544 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530545 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530546 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530547 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700548 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530549 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530550 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530551 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530552 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530553 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530554 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530555 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530556 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530557 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530558 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530559 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530560 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530561 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530562 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530563 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530564 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530565 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530566 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530567 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530568 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530569 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530570 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530571 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530572 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530573 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530574 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530575 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530576 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530577 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530578 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530579 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530580 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530581 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530582 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530583 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530584 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530585 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530586 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530587 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530588 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200589 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
590 LPASS_BE_SEN_AUXPCM_RX},
591 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
592 LPASS_BE_SEN_AUXPCM_TX},
593 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
594 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530595 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530596 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530597 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530598 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530599 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530600 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530601 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530602 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530603 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530604 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530605 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530606 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530607 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530608 LPASS_BE_VA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530609 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530610 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530611 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530612 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530613 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530614 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530615 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530616 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530617 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530618 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530619 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530620 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530621 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530622 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530623 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530624 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530625 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530626 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530627 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530628 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530629 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530630 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530631 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530632 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530633 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530634 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530635 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530636 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530637 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200638 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530639 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200640 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530641 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200642 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530643 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
644 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530645};
646
647/* Track ASM playback & capture sessions of DAI
648 * Track LSM listen sessions
649 */
650static struct msm_pcm_routing_fdai_data
651 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
652 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530653 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
654 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530655 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530656 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
657 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530658 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530659 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
660 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530661 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530662 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
663 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530664 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530665 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
666 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530667 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530668 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
669 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530670 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530671 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
672 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530673 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530674 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
675 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530676 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530677 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
678 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530679 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530680 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
681 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530682 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530683 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
684 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530685 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530686 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
687 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530688 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530689 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
690 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530691 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530692 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
693 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530694 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530695 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
696 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530697 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530698 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
699 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530700 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530701 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
702 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530703 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530704 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
705 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530706 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530707 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
708 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530709 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530710 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
711 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700712 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530715 /* MULTIMEDIA26 */
716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
718 /* MULTIMEDIA27 */
719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530721 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530724 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530725 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
726 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530727 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530730 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530733 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530734 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
735 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530736 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530737 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
738 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530739 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530740 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
741 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530742 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530743 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
744 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530745 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530746 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
747 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530748 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530749 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
750 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530751 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530752 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
753 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530754 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530755 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
756 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530757 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530758 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
759 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530760 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530763 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530764 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
765 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530766 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530769 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530770 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
771 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530772 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530773 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
774 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530775 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530776 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
777 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530778 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530779 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
780 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530781};
782
783static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
784 [MSM_BACKEND_DAI_MAX];
785static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
786static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
787static struct msm_pcm_stream_app_type_cfg
788 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
789
790static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
791
Florian Pfister522073c2018-09-26 15:39:15 +0200792/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530793void msm_pcm_routing_get_bedai_info(int be_idx,
794 struct msm_pcm_routing_bdai_data *be_dai)
795{
796 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
797 memcpy(be_dai, &msm_bedais[be_idx],
798 sizeof(struct msm_pcm_routing_bdai_data));
799}
800
Florian Pfister522073c2018-09-26 15:39:15 +0200801/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530802void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
803 struct msm_pcm_routing_fdai_data *fe_dai)
804{
805 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
806 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
807 sizeof(struct msm_pcm_routing_fdai_data));
808}
809
810void msm_pcm_routing_acquire_lock(void)
811{
812 mutex_lock(&routing_lock);
813}
814
815void msm_pcm_routing_release_lock(void)
816{
817 mutex_unlock(&routing_lock);
818}
819
820static int msm_pcm_routing_get_app_type_idx(int app_type)
821{
822 int idx;
823
824 pr_debug("%s: app_type: %d\n", __func__, app_type);
825 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
826 if (app_type_cfg[idx].app_type == app_type)
827 return idx;
828 }
829 pr_info("%s: App type not available, fallback to default\n", __func__);
830 return 0;
831}
832
833static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
834{
835 int idx;
836
837 pr_debug("%s: app_type: %d\n", __func__, app_type);
838 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
839 if (lsm_app_type_cfg[idx].app_type == app_type)
840 return idx;
841 }
842 pr_debug("%s: App type not available, fallback to default\n", __func__);
843 return 0;
844}
845
846static bool is_mm_lsm_fe_id(int fe_id)
847{
848 bool rc = true;
849
850 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
851 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
852 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
853 rc = false;
854 }
855 return rc;
856}
857
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700858/*
859 * msm_pcm_routing_send_chmix_cfg:
860 * send the channel mixer command to mix the input channels
861 * into output channels.
862 *
863 * @fe_id: front end id
864 * @ip_channel_cnt: input channel count
865 * @op_channel_cnt: output channel count
866 * @ch_wght_coeff: channel weight co-efficients for channel mixing
867 * @session_type: indicates session is of type TX or RX
868 * @stream_type: indicates either Audio or Listen stream type
869 */
870int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
871 int op_channel_cnt, int *ch_wght_coeff,
872 int session_type, int stream_type)
873{
874
875 int rc = 0, idx = 0;
876 int be_index = 0, port_id;
877 unsigned int session_id = 0;
878
879 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
880 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
881 stream_type);
882 if (!is_mm_lsm_fe_id(fe_id)) {
883 /* bad ID assigned in machine driver */
884 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
885 return -EINVAL;
886 }
887
888 if (ch_wght_coeff == NULL) {
889 pr_err("%s: Null channel weightage coefficients passed\n",
890 __func__);
891 return -EINVAL;
892 }
893
894 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
895 port_id = msm_bedais[be_index].port_id;
896 if (!msm_bedais[be_index].active ||
897 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
898 continue;
899
900 session_id = fe_dai_map[fe_id][session_type].strm_id;
901
902 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
903 unsigned long copp =
904 session_copp_map[fe_id][session_type][be_index];
905 if (!test_bit(idx, &copp))
906 continue;
907 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
908 session_id, ip_channel_cnt,
909 op_channel_cnt, ch_wght_coeff,
910 session_type, stream_type);
911 if (rc < 0)
912 pr_err("%s: err setting channel mix config\n",
913 __func__);
914 }
915 }
916
917 return 0;
918}
919EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
920
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530921int msm_pcm_routing_reg_stream_app_type_cfg(
922 int fedai_id, int session_type, int be_id,
923 struct msm_pcm_stream_app_type_cfg *cfg_data)
924{
925 int ret = 0;
926
927 if (cfg_data == NULL) {
928 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
929 ret = -EINVAL;
930 goto done;
931 }
932
933 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
934 __func__, fedai_id, session_type, be_id,
935 cfg_data->app_type, cfg_data->acdb_dev_id,
936 cfg_data->sample_rate);
937
938 if (!is_mm_lsm_fe_id(fedai_id)) {
939 pr_err("%s: Invalid machine driver ID %d\n",
940 __func__, fedai_id);
941 ret = -EINVAL;
942 goto done;
943 }
944 if (session_type != SESSION_TYPE_RX &&
945 session_type != SESSION_TYPE_TX) {
946 pr_err("%s: Invalid session type %d\n",
947 __func__, session_type);
948 ret = -EINVAL;
949 goto done;
950 }
951 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
952 pr_err("%s: Received out of bounds be_id %d\n",
953 __func__, be_id);
954 ret = -EINVAL;
955 goto done;
956 }
957
958 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
959
960 /*
961 * Store the BE ID of the configuration information set as the latest so
962 * the get mixer control knows what to return.
963 */
964 last_be_id_configured[fedai_id][session_type] = be_id;
965
966done:
967 return ret;
968}
969EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
970
971/**
972 * msm_pcm_routing_get_stream_app_type_cfg
973 *
974 * Receives fedai_id, session_type, be_id, and populates app_type,
975 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
976 * -EINVAL and does not alter passed values.
977 *
978 * fedai_id - Passed value, front end ID for which app type config is wanted
979 * session_type - Passed value, session type for which app type config
980 * is wanted
981 * be_id - Returned value, back end device id the app type config data is for
982 * cfg_data - Returned value, configuration data used by app type config
983 */
984int msm_pcm_routing_get_stream_app_type_cfg(
985 int fedai_id, int session_type, int *bedai_id,
986 struct msm_pcm_stream_app_type_cfg *cfg_data)
987{
988 int be_id;
989 int ret = 0;
990
991 if (bedai_id == NULL) {
992 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
993 ret = -EINVAL;
994 goto done;
995 } else if (cfg_data == NULL) {
996 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
997 ret = -EINVAL;
998 goto done;
999 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1000 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1001 ret = -EINVAL;
1002 goto done;
1003 } else if (session_type != SESSION_TYPE_RX &&
1004 session_type != SESSION_TYPE_TX) {
1005 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1006 ret = -EINVAL;
1007 goto done;
1008 }
1009
1010 be_id = last_be_id_configured[fedai_id][session_type];
1011 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1012 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1013 ret = -EINVAL;
1014 goto done;
1015 }
1016
1017 *bedai_id = be_id;
1018 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1019 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1020 __func__, fedai_id, session_type, *bedai_id,
1021 cfg_data->app_type, cfg_data->acdb_dev_id,
1022 cfg_data->sample_rate);
1023done:
1024 return ret;
1025}
1026EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1027
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301028static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1029 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301030{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301031 struct list_head *ptr, *next;
1032 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301033 pr_debug("%s\n", __func__);
1034
1035 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301036 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301037
1038 cal_block = list_entry(ptr,
1039 struct cal_block_data, list);
1040
Vikram Panduranga770b8382017-09-27 12:17:36 -07001041 if (cal_utils_is_cal_stale(cal_block))
1042 continue;
1043
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301044 if (((struct audio_cal_info_adm_top *)cal_block
1045 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301046 return cal_block;
1047 }
1048 }
1049 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1050 return NULL;
1051}
1052
1053static struct cal_block_data *msm_routing_find_topology(int path,
1054 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301055 int acdb_id,
1056 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301057{
1058 struct list_head *ptr, *next;
1059 struct cal_block_data *cal_block = NULL;
1060 struct audio_cal_info_adm_top *cal_info;
1061
1062 pr_debug("%s\n", __func__);
1063
1064 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301065 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301066
1067 cal_block = list_entry(ptr,
1068 struct cal_block_data, list);
1069
Vikram Panduranga770b8382017-09-27 12:17:36 -07001070 if (cal_utils_is_cal_stale(cal_block))
1071 continue;
1072
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301073 cal_info = (struct audio_cal_info_adm_top *)
1074 cal_block->cal_info;
1075 if ((cal_info->path == path) &&
1076 (cal_info->app_type == app_type) &&
1077 (cal_info->acdb_id == acdb_id)) {
1078 return cal_block;
1079 }
1080 }
1081 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1082 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001083 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301084}
1085
Vikram Panduranga770b8382017-09-27 12:17:36 -07001086/*
1087 * Retrieving cal_block will mark cal_block as stale.
1088 * Hence it cannot be reused or resent unless the flag
1089 * is reset.
1090 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301091static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1092 int be_id)
1093{
1094 int topology = NULL_COPP_TOPOLOGY;
1095 struct cal_block_data *cal_block = NULL;
1096 int app_type = 0, acdb_dev_id = 0;
1097
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301098 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1099 __func__, fedai_id, session_type, be_id);
1100
1101 if (cal_data == NULL)
1102 goto done;
1103
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301104 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1105 acdb_dev_id =
1106 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1107
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301108 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301109 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301110 acdb_dev_id,
1111 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001112 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301113 topology = ((struct audio_cal_info_adm_top *)
1114 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001115 cal_utils_mark_cal_used(cal_block);
1116 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1117 } else {
1118 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301119
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301120 pr_debug("%s: Check for LSM topology\n", __func__);
1121 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1122 cal_block = msm_routing_find_topology(session_type, app_type,
1123 acdb_dev_id,
1124 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001125 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301126 topology = ((struct audio_cal_info_adm_top *)
1127 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001128 cal_utils_mark_cal_used(cal_block);
1129 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301130 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1131 }
1132
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301133done:
1134 pr_debug("%s: Using topology %d\n", __func__, topology);
1135 return topology;
1136}
1137
1138static uint8_t is_be_dai_extproc(int be_dai)
1139{
1140 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1141 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1142 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1143 return 1;
1144 else
1145 return 0;
1146}
1147
1148static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1149 int path_type, int perf_mode,
1150 uint32_t passthr_mode)
1151{
1152 int i, port_type, j, num_copps = 0;
1153 struct route_payload payload;
1154
1155 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1156 path_type == ADM_PATH_COMPRESSED_RX) ?
1157 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1158
1159 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1160 if (!is_be_dai_extproc(i) &&
1161 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1162 (msm_bedais[i].active) &&
1163 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1164 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1165 unsigned long copp =
1166 session_copp_map[fedai_id][sess_type][i];
1167 if (test_bit(j, &copp)) {
1168 payload.port_id[num_copps] =
1169 msm_bedais[i].port_id;
1170 payload.copp_idx[num_copps] = j;
1171 payload.app_type[num_copps] =
1172 fe_dai_app_type_cfg
1173 [fedai_id][sess_type][i]
1174 .app_type;
1175 payload.acdb_dev_id[num_copps] =
1176 fe_dai_app_type_cfg
1177 [fedai_id][sess_type][i]
1178 .acdb_dev_id;
1179 payload.sample_rate[num_copps] =
1180 fe_dai_app_type_cfg
1181 [fedai_id][sess_type][i]
1182 .sample_rate;
1183 num_copps++;
1184 }
1185 }
1186 }
1187 }
1188
1189 if (num_copps) {
1190 payload.num_copps = num_copps;
1191 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1192 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1193 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1194 }
1195}
1196
1197void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1198 int stream_type)
1199{
1200 int i, session_type, path_type, port_type;
1201 u32 mode = 0;
1202
1203 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1204 /* bad ID assigned in machine driver */
1205 pr_err("%s: bad MM ID\n", __func__);
1206 return;
1207 }
1208
1209 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1210 session_type = SESSION_TYPE_RX;
1211 path_type = ADM_PATH_PLAYBACK;
1212 port_type = MSM_AFE_PORT_TYPE_RX;
1213 } else {
1214 session_type = SESSION_TYPE_TX;
1215 path_type = ADM_PATH_LIVE_REC;
1216 port_type = MSM_AFE_PORT_TYPE_TX;
1217 }
1218
1219 mutex_lock(&routing_lock);
1220
1221 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1222 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1223 if (!is_be_dai_extproc(i) &&
1224 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1225 (msm_bedais[i].active) &&
1226 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1227 mode = afe_get_port_type(msm_bedais[i].port_id);
1228 adm_connect_afe_port(mode, dspst_id,
1229 msm_bedais[i].port_id);
1230 break;
1231 }
1232 }
1233 mutex_unlock(&routing_lock);
1234}
1235
1236static bool route_check_fe_id_adm_support(int fe_id)
1237{
1238 bool rc = true;
1239
1240 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1241 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1242 /* fe id is listen while port is set to afe */
1243 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1244 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1245 __func__, fe_id, lsm_port_index);
1246 rc = false;
1247 }
1248 }
1249
1250 return rc;
1251}
1252
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001253/*
1254 * msm_pcm_routing_get_pp_ch_cnt:
1255 * Read the processed channel count
1256 *
1257 * @fe_id: Front end ID
1258 * @session_type: Inidicates RX or TX session type
1259 */
1260int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1261{
1262 struct msm_pcm_stream_app_type_cfg cfg_data;
1263 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301264 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001265
1266 memset(&cfg_data, 0, sizeof(cfg_data));
1267
1268 if (!is_mm_lsm_fe_id(fe_id)) {
1269 pr_err("%s: bad MM ID\n", __func__);
1270 return -EINVAL;
1271 }
1272
1273 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1274 &be_id, &cfg_data);
1275 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301276 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001277 return ret;
1278 }
1279
1280 app_type = cfg_data.app_type;
1281 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1282 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1283}
1284EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1285
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301286int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1287 int dspst_id, int stream_type,
1288 uint32_t passthr_mode)
1289{
1290 int i, j, session_type, path_type, port_type, topology;
1291 int num_copps = 0;
1292 struct route_payload payload;
1293 u32 channels, sample_rate;
1294 u16 bit_width = 16;
1295 bool is_lsm;
1296
1297 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1298 __func__, fe_id, perf_mode, dspst_id,
1299 stream_type, passthr_mode);
1300 if (!is_mm_lsm_fe_id(fe_id)) {
1301 /* bad ID assigned in machine driver */
1302 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1303 return -EINVAL;
1304 }
1305
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301306 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1307 session_type = SESSION_TYPE_RX;
1308 if (passthr_mode != LEGACY_PCM)
1309 path_type = ADM_PATH_COMPRESSED_RX;
1310 else
1311 path_type = ADM_PATH_PLAYBACK;
1312 port_type = MSM_AFE_PORT_TYPE_RX;
1313 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1314 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301315 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301316 path_type = ADM_PATH_COMPRESSED_TX;
1317 else
1318 path_type = ADM_PATH_LIVE_REC;
1319 port_type = MSM_AFE_PORT_TYPE_TX;
1320 } else {
1321 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1322 return -EINVAL;
1323 }
1324
1325 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1326 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1327 mutex_lock(&routing_lock);
1328
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301329 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301330 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1331 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1332 if (!route_check_fe_id_adm_support(fe_id)) {
1333 /* ignore adm open if not supported for fe_id */
1334 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1335 mutex_unlock(&routing_lock);
1336 return 0;
1337 }
1338
1339 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301340 /* re-enable EQ if active */
1341 msm_qti_pp_send_eq_values(fe_id);
1342 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301343 if (!is_be_dai_extproc(i) &&
1344 (afe_get_port_type(msm_bedais[i].port_id) ==
1345 port_type) &&
1346 (msm_bedais[i].active) &&
1347 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1348 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1349
1350 /*
1351 * check if ADM needs to be configured with different
1352 * channel mapping than backend
1353 */
1354 if (!msm_bedais[i].adm_override_ch)
1355 channels = msm_bedais[i].channel;
1356 else
1357 channels = msm_bedais[i].adm_override_ch;
1358
1359 bit_width = msm_routing_get_bit_width(
1360 msm_bedais[i].format);
1361 app_type =
1362 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1363 if (app_type && is_lsm) {
1364 app_type_idx =
1365 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1366 sample_rate =
1367 fe_dai_app_type_cfg[fe_id][session_type][i]
1368 .sample_rate;
1369 bit_width =
1370 lsm_app_type_cfg[app_type_idx].bit_width;
1371 } else if (app_type) {
1372 app_type_idx =
1373 msm_pcm_routing_get_app_type_idx(
1374 app_type);
1375 sample_rate =
1376 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1377 bit_width =
1378 app_type_cfg[app_type_idx].bit_width;
1379 } else {
1380 sample_rate = msm_bedais[i].sample_rate;
1381 }
1382 acdb_dev_id =
1383 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1384 topology = msm_routing_get_adm_topology(fe_id,
1385 session_type,
1386 i);
1387 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1388 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001389 COMPRESSED_PASSTHROUGH_GEN)
1390 || (passthr_mode ==
1391 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301392 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1393 pr_debug("%s: Before adm open topology %d\n", __func__,
1394 topology);
1395
1396 copp_idx =
1397 adm_open(msm_bedais[i].port_id,
1398 path_type, sample_rate, channels,
1399 topology, perf_mode, bit_width,
1400 app_type, acdb_dev_id);
1401 if ((copp_idx < 0) ||
1402 (copp_idx >= MAX_COPPS_PER_PORT)) {
1403 pr_err("%s:adm open failed coppid:%d\n",
1404 __func__, copp_idx);
1405 mutex_unlock(&routing_lock);
1406 return -EINVAL;
1407 }
1408 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1409 __func__, fe_id, session_type, i);
1410 set_bit(copp_idx,
1411 &session_copp_map[fe_id][session_type][i]);
1412
1413 if (msm_is_resample_needed(
1414 sample_rate,
1415 msm_bedais[i].sample_rate))
1416 adm_copp_mfc_cfg(
1417 msm_bedais[i].port_id, copp_idx,
1418 msm_bedais[i].sample_rate);
1419
1420 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1421 unsigned long copp =
1422 session_copp_map[fe_id][session_type][i];
1423 if (test_bit(j, &copp)) {
1424 payload.port_id[num_copps] =
1425 msm_bedais[i].port_id;
1426 payload.copp_idx[num_copps] = j;
1427 payload.app_type[num_copps] =
1428 fe_dai_app_type_cfg
1429 [fe_id][session_type][i]
1430 .app_type;
1431 payload.acdb_dev_id[num_copps] =
1432 fe_dai_app_type_cfg
1433 [fe_id][session_type][i]
1434 .acdb_dev_id;
1435 payload.sample_rate[num_copps] =
1436 fe_dai_app_type_cfg
1437 [fe_id][session_type][i]
1438 .sample_rate;
1439 num_copps++;
1440 }
1441 }
1442 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001443 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301444 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301445 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001446 msm_bedais[i].port_id,
1447 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301448 }
1449 }
1450 if (num_copps) {
1451 payload.num_copps = num_copps;
1452 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1453 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1454 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1455 }
1456 mutex_unlock(&routing_lock);
1457 return 0;
1458}
1459
1460static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1461{
1462 u32 session_id;
1463
1464 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301465 case MSM_FRONTEND_DAI_QCHAT:
1466 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1467 break;
1468 case MSM_FRONTEND_DAI_VOIP:
1469 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1470 break;
1471 case MSM_FRONTEND_DAI_VOICEMMODE1:
1472 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1473 break;
1474 case MSM_FRONTEND_DAI_VOICEMMODE2:
1475 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1476 break;
1477 default:
1478 session_id = 0;
1479 }
1480
1481 pr_debug("%s session_id 0x%x", __func__, session_id);
1482 return session_id;
1483}
1484
1485static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1486 int dspst_id, int stream_type)
1487{
1488 int copp_idx = 0;
1489 int sess_type = 0;
1490 int i = 0, j = 0, be_id;
1491 int ret = 0;
1492
1493 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1494 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1495 return 0;
1496 }
1497
1498 if (!(channel_mixer[fe_id].enable)) {
1499 pr_debug("%s: channel mixer not enabled for FE %d\n",
1500 __func__, fe_id);
1501 return 0;
1502 }
1503
1504 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1505 sess_type = SESSION_TYPE_RX;
1506 else
1507 sess_type = SESSION_TYPE_TX;
1508
1509 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1510 ++i) {
1511 be_id = channel_input[fe_id][i] - 1;
1512 channel_mixer[fe_id].input_channels[i] =
1513 msm_bedais[be_id].channel;
1514
1515 if ((msm_bedais[be_id].active) &&
1516 test_bit(fe_id,
1517 &msm_bedais[be_id].fe_sessions[0])) {
1518 unsigned long copp =
1519 session_copp_map[fe_id][sess_type][be_id];
1520 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1521 if (test_bit(j, &copp)) {
1522 copp_idx = j;
1523 break;
1524 }
1525 }
1526
1527 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1528 __func__,
1529 fe_id, be_id, msm_bedais[be_id].channel,
1530 copp_idx);
1531 ret = adm_programable_channel_mixer(
1532 msm_bedais[be_id].port_id,
1533 copp_idx, dspst_id, sess_type,
1534 channel_mixer + fe_id, i);
1535 }
1536 }
1537
1538 return ret;
1539}
1540
1541int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1542 int dspst_id, int stream_type)
1543{
1544 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1545 struct route_payload payload;
1546 u32 channels, sample_rate;
1547 uint16_t bits_per_sample = 16;
1548 uint32_t passthr_mode = LEGACY_PCM;
1549 int ret = 0;
1550
1551 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1552 /* bad ID assigned in machine driver */
1553 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1554 return -EINVAL;
1555 }
1556
1557 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1558 session_type = SESSION_TYPE_RX;
1559 path_type = ADM_PATH_PLAYBACK;
1560 port_type = MSM_AFE_PORT_TYPE_RX;
1561 } else {
1562 session_type = SESSION_TYPE_TX;
1563 path_type = ADM_PATH_LIVE_REC;
1564 port_type = MSM_AFE_PORT_TYPE_TX;
1565 }
1566
1567 mutex_lock(&routing_lock);
1568
1569 payload.num_copps = 0; /* only RX needs to use payload */
1570 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1571 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301572 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301573
1574 /* re-enable EQ if active */
1575 msm_qti_pp_send_eq_values(fedai_id);
1576 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1577 if (!is_be_dai_extproc(i) &&
1578 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1579 (msm_bedais[i].active) &&
1580 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1581 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1582 /*
1583 * check if ADM needs to be configured with different
1584 * channel mapping than backend
1585 */
1586 if (!msm_bedais[i].adm_override_ch)
1587 channels = msm_bedais[i].channel;
1588 else
1589 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301590
1591 bits_per_sample = msm_routing_get_bit_width(
1592 msm_bedais[i].format);
1593
1594 app_type =
1595 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1596 if (app_type) {
1597 app_type_idx =
1598 msm_pcm_routing_get_app_type_idx(app_type);
1599 sample_rate =
1600 fe_dai_app_type_cfg[fedai_id][session_type][i]
1601 .sample_rate;
1602 bits_per_sample =
1603 app_type_cfg[app_type_idx].bit_width;
1604 } else
1605 sample_rate = msm_bedais[i].sample_rate;
1606
1607 acdb_dev_id =
1608 fe_dai_app_type_cfg[fedai_id][session_type][i]
1609 .acdb_dev_id;
1610 topology = msm_routing_get_adm_topology(fedai_id,
1611 session_type,
1612 i);
1613 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1614 sample_rate, channels, topology,
1615 perf_mode, bits_per_sample,
1616 app_type, acdb_dev_id);
1617 if ((copp_idx < 0) ||
1618 (copp_idx >= MAX_COPPS_PER_PORT)) {
1619 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001620 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301621 mutex_unlock(&routing_lock);
1622 return -EINVAL;
1623 }
1624 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1625 __func__, fedai_id, session_type, i);
1626 set_bit(copp_idx,
1627 &session_copp_map[fedai_id][session_type][i]);
1628
1629 if (msm_is_resample_needed(
1630 sample_rate,
1631 msm_bedais[i].sample_rate))
1632 adm_copp_mfc_cfg(
1633 msm_bedais[i].port_id, copp_idx,
1634 msm_bedais[i].sample_rate);
1635
1636 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1637 unsigned long copp =
1638 session_copp_map[fedai_id][session_type][i];
1639 if (test_bit(j, &copp)) {
1640 payload.port_id[num_copps] =
1641 msm_bedais[i].port_id;
1642 payload.copp_idx[num_copps] = j;
1643 payload.app_type[num_copps] =
1644 fe_dai_app_type_cfg
1645 [fedai_id][session_type]
1646 [i].app_type;
1647 payload.acdb_dev_id[num_copps] =
1648 fe_dai_app_type_cfg
1649 [fedai_id][session_type]
1650 [i].acdb_dev_id;
1651 payload.sample_rate[num_copps] =
1652 fe_dai_app_type_cfg
1653 [fedai_id][session_type]
1654 [i].sample_rate;
1655 num_copps++;
1656 }
1657 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301658 if (perf_mode == LEGACY_PCM_MODE)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301659 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301660 copp_idx, topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301661 }
1662 }
1663 if (num_copps) {
1664 payload.num_copps = num_copps;
1665 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1666 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1667 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1668 }
1669
1670 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1671 dspst_id, stream_type);
1672 mutex_unlock(&routing_lock);
1673 return ret;
1674}
1675
1676int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1677 int dspst_id, int stream_type,
1678 struct msm_pcm_routing_evt event_info)
1679{
1680 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1681 stream_type)) {
1682 pr_err("%s: failed to reg phy stream\n", __func__);
1683 return -EINVAL;
1684 }
1685
1686 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1687 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1688 else
1689 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1690 return 0;
1691}
1692
1693void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1694{
1695 int i, port_type, session_type, path_type, topology;
1696 struct msm_pcm_routing_fdai_data *fdai;
1697
1698 if (!is_mm_lsm_fe_id(fedai_id)) {
1699 /* bad ID assigned in machine driver */
1700 pr_err("%s: bad MM ID\n", __func__);
1701 return;
1702 }
1703
1704 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1705 port_type = MSM_AFE_PORT_TYPE_RX;
1706 session_type = SESSION_TYPE_RX;
1707 path_type = ADM_PATH_PLAYBACK;
1708 } else {
1709 port_type = MSM_AFE_PORT_TYPE_TX;
1710 session_type = SESSION_TYPE_TX;
1711 path_type = ADM_PATH_LIVE_REC;
1712 }
1713
1714 mutex_lock(&routing_lock);
1715 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1716 if (!is_be_dai_extproc(i) &&
1717 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1718 (msm_bedais[i].active) &&
1719 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1720 int idx;
1721 unsigned long copp =
1722 session_copp_map[fedai_id][session_type][i];
1723 fdai = &fe_dai_map[fedai_id][session_type];
1724
1725 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1726 if (test_bit(idx, &copp))
1727 break;
1728
1729 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1730 pr_debug("%s: copp idx is invalid, exiting\n",
1731 __func__);
1732 continue;
1733 }
1734 topology = adm_get_topology_for_port_copp_idx(
1735 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001736 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301737 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1738 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1739 __func__, copp, fedai_id, session_type, i);
1740 clear_bit(idx,
1741 &session_copp_map[fedai_id][session_type][i]);
1742 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1743 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1744 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301745 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301746 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1747 topology);
1748 }
1749 }
1750
1751 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1752 fe_dai_map[fedai_id][session_type].be_srate = 0;
1753 mutex_unlock(&routing_lock);
1754}
1755
1756/* Check if FE/BE route is set */
1757static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1758{
1759 bool rc = false;
1760
1761 if (!is_mm_lsm_fe_id(fe_id)) {
1762 /* recheck FE ID in the mixer control defined in this file */
1763 pr_err("%s: bad MM ID\n", __func__);
1764 return rc;
1765 }
1766
1767 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1768 rc = true;
1769
1770 return rc;
1771}
1772
1773static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1774{
1775 int session_type, path_type, topology;
1776 u32 channels, sample_rate;
1777 uint16_t bits_per_sample = 16;
1778 struct msm_pcm_routing_fdai_data *fdai;
1779 uint32_t passthr_mode;
1780 bool is_lsm;
1781
1782 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1783
1784 if (!is_mm_lsm_fe_id(val)) {
1785 /* recheck FE ID in the mixer control defined in this file */
1786 pr_err("%s: bad MM ID\n", __func__);
1787 return;
1788 }
1789
1790 if (!route_check_fe_id_adm_support(val)) {
1791 /* ignore adm open if not supported for fe_id */
1792 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1793 return;
1794 }
1795
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301796 session_type =
1797 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1798 SESSION_TYPE_RX : SESSION_TYPE_TX;
1799 fdai = &fe_dai_map[val][session_type];
1800 passthr_mode = fdai->passthr_mode;
1801 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301802 if (passthr_mode != LEGACY_PCM)
1803 path_type = ADM_PATH_COMPRESSED_RX;
1804 else
1805 path_type = ADM_PATH_PLAYBACK;
1806 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001807 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301808 path_type = ADM_PATH_COMPRESSED_TX;
1809 else
1810 path_type = ADM_PATH_LIVE_REC;
1811 }
1812 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1813 (val <= MSM_FRONTEND_DAI_LSM8);
1814
1815 mutex_lock(&routing_lock);
1816 if (set) {
1817 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1818 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1819 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1820 voc_start_playback(set, msm_bedais[reg].port_id);
1821
1822 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301823 if (msm_bedais[reg].active && fdai->strm_id !=
1824 INVALID_SESSION) {
1825 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1826 /*
1827 * check if ADM needs to be configured with different
1828 * channel mapping than backend
1829 */
1830 if (!msm_bedais[reg].adm_override_ch)
1831 channels = msm_bedais[reg].channel;
1832 else
1833 channels = msm_bedais[reg].adm_override_ch;
1834 if (session_type == SESSION_TYPE_TX &&
1835 fdai->be_srate &&
1836 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1837 pr_debug("%s: flush strm %d diff BE rates\n",
1838 __func__, fdai->strm_id);
1839
1840 if (fdai->event_info.event_func)
1841 fdai->event_info.event_func(
1842 MSM_PCM_RT_EVT_BUF_RECFG,
1843 fdai->event_info.priv_data);
1844 fdai->be_srate = 0; /* might not need it */
1845 }
1846
1847 bits_per_sample = msm_routing_get_bit_width(
1848 msm_bedais[reg].format);
1849
1850 app_type =
1851 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1852 if (app_type && is_lsm) {
1853 app_type_idx =
1854 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1855 sample_rate =
1856 fe_dai_app_type_cfg[val][session_type][reg]
1857 .sample_rate;
1858 bits_per_sample =
1859 lsm_app_type_cfg[app_type_idx].bit_width;
1860 } else if (app_type) {
1861 app_type_idx =
1862 msm_pcm_routing_get_app_type_idx(app_type);
1863 sample_rate =
1864 fe_dai_app_type_cfg[val][session_type][reg]
1865 .sample_rate;
1866 bits_per_sample =
1867 app_type_cfg[app_type_idx].bit_width;
1868 } else
1869 sample_rate = msm_bedais[reg].sample_rate;
1870
1871 topology = msm_routing_get_adm_topology(val,
1872 session_type,
1873 reg);
1874 acdb_dev_id =
1875 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1876 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1877 sample_rate, channels, topology,
1878 fdai->perf_mode, bits_per_sample,
1879 app_type, acdb_dev_id);
1880 if ((copp_idx < 0) ||
1881 (copp_idx >= MAX_COPPS_PER_PORT)) {
1882 pr_err("%s: adm open failed\n", __func__);
1883 mutex_unlock(&routing_lock);
1884 return;
1885 }
1886 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1887 __func__, val, session_type, reg);
1888 set_bit(copp_idx,
1889 &session_copp_map[val][session_type][reg]);
1890
1891 if (msm_is_resample_needed(
1892 sample_rate,
1893 msm_bedais[reg].sample_rate))
1894 adm_copp_mfc_cfg(
1895 msm_bedais[reg].port_id, copp_idx,
1896 msm_bedais[reg].sample_rate);
1897
1898 if (session_type == SESSION_TYPE_RX &&
1899 fdai->event_info.event_func)
1900 fdai->event_info.event_func(
1901 MSM_PCM_RT_EVT_DEVSWITCH,
1902 fdai->event_info.priv_data);
1903
1904 msm_pcm_routing_build_matrix(val, session_type,
1905 path_type,
1906 fdai->perf_mode,
1907 passthr_mode);
1908 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1909 (passthr_mode == LEGACY_PCM))
1910 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1911 copp_idx, topology,
1912 channels);
1913 }
1914 } else {
1915 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1916 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1917 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1918 voc_start_playback(set, msm_bedais[reg].port_id);
1919 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301920 if (msm_bedais[reg].active && fdai->strm_id !=
1921 INVALID_SESSION) {
1922 int idx;
1923 int port_id;
1924 unsigned long copp =
1925 session_copp_map[val][session_type][reg];
1926 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1927 if (test_bit(idx, &copp))
1928 break;
1929
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07001930 if (idx >= MAX_COPPS_PER_PORT) {
1931 pr_debug("%s: copp idx is invalid, exiting\n",
1932 __func__);
1933 mutex_unlock(&routing_lock);
1934 return;
1935 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301936 port_id = msm_bedais[reg].port_id;
1937 topology = adm_get_topology_for_port_copp_idx(port_id,
1938 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001939 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301940 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1941 idx);
1942 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1943 __func__, copp, val, session_type, reg,
1944 topology);
1945 clear_bit(idx,
1946 &session_copp_map[val][session_type][reg]);
1947 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1948 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1949 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1950 (passthr_mode == LEGACY_PCM))
1951 msm_pcm_routing_deinit_pp(
1952 msm_bedais[reg].port_id,
1953 topology);
1954 msm_pcm_routing_build_matrix(val, session_type,
1955 path_type,
1956 fdai->perf_mode,
1957 passthr_mode);
1958 }
1959 }
1960 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1961 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1962 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1963
1964 mutex_unlock(&routing_lock);
1965}
1966
1967static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1968 struct snd_ctl_elem_value *ucontrol)
1969{
1970 struct soc_mixer_control *mc =
1971 (struct soc_mixer_control *)kcontrol->private_value;
1972
Meng Wang05d5e9a2018-03-28 16:45:03 +08001973 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301974 ucontrol->value.integer.value[0] = 1;
1975 else
1976 ucontrol->value.integer.value[0] = 0;
1977
Meng Wang05d5e9a2018-03-28 16:45:03 +08001978 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301979 ucontrol->value.integer.value[0]);
1980
1981 return 0;
1982}
1983
1984static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1985 struct snd_ctl_elem_value *ucontrol)
1986{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301987 struct snd_soc_dapm_widget *widget =
1988 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301989 struct soc_mixer_control *mc =
1990 (struct soc_mixer_control *)kcontrol->private_value;
1991 struct snd_soc_dapm_update *update = NULL;
1992
1993 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001994 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1995 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301996 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1997 update);
1998 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001999 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2000 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302001 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2002 update);
2003 }
2004
2005 return 1;
2006}
2007
2008static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2009 struct snd_ctl_elem_value *ucontrol)
2010{
2011 struct soc_mixer_control *mc =
2012 (struct soc_mixer_control *)kcontrol->private_value;
2013
Meng Wang05d5e9a2018-03-28 16:45:03 +08002014 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302015 ucontrol->value.integer.value[0] = 1;
2016 else
2017 ucontrol->value.integer.value[0] = 0;
2018
Meng Wang05d5e9a2018-03-28 16:45:03 +08002019 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302020 ucontrol->value.integer.value[0]);
2021
2022 return 0;
2023}
2024
2025static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2026 struct snd_ctl_elem_value *ucontrol)
2027{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302028 struct snd_soc_dapm_widget *widget =
2029 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302030 struct soc_mixer_control *mc =
2031 (struct soc_mixer_control *)kcontrol->private_value;
2032 struct snd_soc_dapm_update *update = NULL;
2033
Meng Wang05d5e9a2018-03-28 16:45:03 +08002034 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302035 ucontrol->value.integer.value[0]);
2036
2037 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002038 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2039 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302040 snd_soc_dapm_mixer_update_power(widget->dapm,
2041 kcontrol, 1, update);
2042 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002043 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2044 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302045 snd_soc_dapm_mixer_update_power(widget->dapm,
2046 kcontrol, 0, update);
2047 }
2048
2049 return 1;
2050}
2051
2052static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2053{
2054 u32 session_id = 0;
2055 u16 path_type;
2056 struct media_format_info voc_be_media_format;
2057
2058 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2059
2060 session_id = msm_pcm_routing_get_voc_sessionid(val);
2061
2062 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2063 __func__, val, session_id);
2064
2065 mutex_lock(&routing_lock);
2066
2067 if (set)
2068 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2069 else
2070 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2071
2072 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2073 afe_get_port_type(msm_bedais[reg].port_id) ==
2074 MSM_AFE_PORT_TYPE_RX) {
2075 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2076 __func__, set, msm_bedais[reg].port_id);
2077 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2078 }
2079
2080 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2081 MSM_AFE_PORT_TYPE_RX)
2082 path_type = RX_PATH;
2083 else
2084 path_type = TX_PATH;
2085
2086 if (set) {
2087 if (msm_bedais[reg].active) {
2088 voc_set_route_flag(session_id, path_type, 1);
2089
2090 memset(&voc_be_media_format, 0,
2091 sizeof(struct media_format_info));
2092
2093 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2094 voc_be_media_format.num_channels =
2095 msm_bedais[reg].channel;
2096 voc_be_media_format.sample_rate =
2097 msm_bedais[reg].sample_rate;
2098 voc_be_media_format.bits_per_sample =
2099 msm_bedais[reg].format;
2100 /* Defaulting this to 1 for voice call usecases */
2101 voc_be_media_format.channel_mapping[0] = 1;
2102
2103 voc_set_device_config(session_id, path_type,
2104 &voc_be_media_format);
2105
2106 if (voc_get_route_flag(session_id, TX_PATH) &&
2107 voc_get_route_flag(session_id, RX_PATH))
2108 voc_enable_device(session_id);
2109 } else {
2110 pr_debug("%s BE is not active\n", __func__);
2111 }
2112 } else {
2113 voc_set_route_flag(session_id, path_type, 0);
2114 voc_disable_device(session_id);
2115 }
2116
2117 mutex_unlock(&routing_lock);
2118
2119}
2120
2121static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2122 struct snd_ctl_elem_value *ucontrol)
2123{
2124 struct soc_mixer_control *mc =
2125 (struct soc_mixer_control *)kcontrol->private_value;
2126
2127 mutex_lock(&routing_lock);
2128
Meng Wang05d5e9a2018-03-28 16:45:03 +08002129 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302130 ucontrol->value.integer.value[0] = 1;
2131 else
2132 ucontrol->value.integer.value[0] = 0;
2133
2134 mutex_unlock(&routing_lock);
2135
Meng Wang05d5e9a2018-03-28 16:45:03 +08002136 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302137 ucontrol->value.integer.value[0]);
2138
2139 return 0;
2140}
2141
2142static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2143 struct snd_ctl_elem_value *ucontrol)
2144{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302145 struct snd_soc_dapm_widget *widget =
2146 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302147 struct soc_mixer_control *mc =
2148 (struct soc_mixer_control *)kcontrol->private_value;
2149 struct snd_soc_dapm_update *update = NULL;
2150
2151 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002152 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302153 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2154 update);
2155 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002156 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302157 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2158 update);
2159 }
2160
2161 return 1;
2162}
2163
2164static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2165 struct snd_ctl_elem_value *ucontrol)
2166{
2167 struct soc_mixer_control *mc =
2168 (struct soc_mixer_control *)kcontrol->private_value;
2169
2170 mutex_lock(&routing_lock);
2171
Meng Wang05d5e9a2018-03-28 16:45:03 +08002172 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302173 ucontrol->value.integer.value[0] = 1;
2174 else
2175 ucontrol->value.integer.value[0] = 0;
2176
2177 mutex_unlock(&routing_lock);
2178
Meng Wang05d5e9a2018-03-28 16:45:03 +08002179 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302180 ucontrol->value.integer.value[0]);
2181
2182 return 0;
2183}
2184
2185static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2186 struct snd_ctl_elem_value *ucontrol)
2187{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302188 struct snd_soc_dapm_widget *widget =
2189 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302190 struct soc_mixer_control *mc =
2191 (struct soc_mixer_control *)kcontrol->private_value;
2192 struct snd_soc_dapm_update *update = NULL;
2193
2194 if (ucontrol->value.integer.value[0]) {
2195 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002196 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302197 mutex_unlock(&routing_lock);
2198
2199 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2200 update);
2201 } else {
2202 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002203 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302204 mutex_unlock(&routing_lock);
2205
2206 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2207 update);
2208 }
2209
Meng Wang05d5e9a2018-03-28 16:45:03 +08002210 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302211 ucontrol->value.integer.value[0]);
2212
2213 return 1;
2214}
2215
2216/*
2217 * Return the mapping between port ID and backend ID to enable the AFE callback
2218 * to determine the acdb_dev_id from the port id
2219 */
2220int msm_pcm_get_be_id_from_port_id(int port_id)
2221{
2222 int i;
2223 int be_id = -EINVAL;
2224
2225 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2226 if (msm_bedais[i].port_id == port_id) {
2227 be_id = i;
2228 break;
2229 }
2230 }
2231
2232 return be_id;
2233}
2234
2235/*
2236 * Return the registered dev_acdb_id given a port ID to enable identifying the
2237 * correct AFE calibration information by comparing the header information.
2238 */
2239static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2240{
2241 int acdb_id = -EINVAL;
2242 int i = 0;
2243 int session;
2244 int port_type = afe_get_port_type(port_id);
2245 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2246
2247 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2248 __func__, port_id, be_id, port_type);
2249
2250 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2251 session = SESSION_TYPE_TX;
2252 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2253 session = SESSION_TYPE_RX;
2254 } else {
2255 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2256 acdb_id = -EINVAL;
2257 goto exit;
2258 }
2259
2260 if (be_id < 0) {
2261 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2262 goto exit;
2263 }
2264
2265 mutex_lock(&routing_lock);
2266 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2267 MSM_FRONTEND_DAI_MAX);
2268 if (i < MSM_FRONTEND_DAI_MAX)
2269 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2270
2271 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2272 __func__, i, session, be_id, acdb_id);
2273 mutex_unlock(&routing_lock);
2274exit:
2275 return acdb_id;
2276}
2277
2278static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2279 struct snd_ctl_elem_value *ucontrol)
2280{
2281 ucontrol->value.integer.value[0] = fm_switch_enable;
2282 pr_debug("%s: FM Switch enable %ld\n", __func__,
2283 ucontrol->value.integer.value[0]);
2284 return 0;
2285}
2286
2287static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2288 struct snd_ctl_elem_value *ucontrol)
2289{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302290 struct snd_soc_dapm_widget *widget =
2291 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302292 struct snd_soc_dapm_update *update = NULL;
2293
2294 pr_debug("%s: FM Switch enable %ld\n", __func__,
2295 ucontrol->value.integer.value[0]);
2296 if (ucontrol->value.integer.value[0])
2297 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2298 update);
2299 else
2300 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2301 update);
2302 fm_switch_enable = ucontrol->value.integer.value[0];
2303 return 1;
2304}
2305
2306static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2307 struct snd_ctl_elem_value *ucontrol)
2308{
2309 ucontrol->value.integer.value[0] = hfp_switch_enable;
2310 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2311 ucontrol->value.integer.value[0]);
2312 return 0;
2313}
2314
2315static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2316 struct snd_ctl_elem_value *ucontrol)
2317{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302318 struct snd_soc_dapm_widget *widget =
2319 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302320 struct snd_soc_dapm_update *update = NULL;
2321
2322 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2323 ucontrol->value.integer.value[0]);
2324 if (ucontrol->value.integer.value[0])
2325 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2326 1, update);
2327 else
2328 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2329 0, update);
2330 hfp_switch_enable = ucontrol->value.integer.value[0];
2331 return 1;
2332}
2333
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002334static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2335 struct snd_ctl_elem_value *ucontrol)
2336{
2337 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2338 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2339 ucontrol->value.integer.value[0]);
2340 return 0;
2341}
2342
2343static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2344 struct snd_ctl_elem_value *ucontrol)
2345{
2346 struct snd_soc_dapm_widget *widget =
2347 snd_soc_dapm_kcontrol_widget(kcontrol);
2348 struct snd_soc_dapm_update *update = NULL;
2349
2350 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2351 ucontrol->value.integer.value[0]);
2352 a2dp_switch_enable = ucontrol->value.integer.value[0];
2353 if (a2dp_switch_enable)
2354 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2355 1, update);
2356 else
2357 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2358 0, update);
2359 return 1;
2360}
2361
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302362static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2363 struct snd_ctl_elem_value *ucontrol)
2364{
2365 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2366 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2367 ucontrol->value.integer.value[0]);
2368 return 0;
2369}
2370
2371static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2372 struct snd_ctl_elem_value *ucontrol)
2373{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302374 struct snd_soc_dapm_widget *widget =
2375 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302376 struct snd_soc_dapm_update *update = NULL;
2377
2378 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2379 ucontrol->value.integer.value[0]);
2380 if (ucontrol->value.integer.value[0])
2381 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2382 update);
2383 else
2384 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2385 update);
2386 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2387 return 1;
2388}
2389
2390static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2391 struct snd_ctl_elem_value *ucontrol)
2392{
2393 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2394 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2395 ucontrol->value.integer.value[0]);
2396 return 0;
2397}
2398
2399static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2400 struct snd_ctl_elem_value *ucontrol)
2401{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302402 struct snd_soc_dapm_widget *widget =
2403 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302404 struct snd_soc_dapm_update *update = NULL;
2405
2406 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2407 ucontrol->value.integer.value[0]);
2408 if (ucontrol->value.integer.value[0])
2409 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2410 update);
2411 else
2412 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2413 update);
2414 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2415 return 1;
2416}
2417
2418static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2419 struct snd_ctl_elem_value *ucontrol)
2420{
2421 ucontrol->value.integer.value[0] = usb_switch_enable;
2422 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2423 ucontrol->value.integer.value[0]);
2424 return 0;
2425}
2426
2427static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2428 struct snd_ctl_elem_value *ucontrol)
2429{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302430 struct snd_soc_dapm_widget *widget =
2431 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302432 struct snd_soc_dapm_update *update = NULL;
2433
2434 pr_debug("%s: USB Switch enable %ld\n", __func__,
2435 ucontrol->value.integer.value[0]);
2436 if (ucontrol->value.integer.value[0])
2437 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2438 1, update);
2439 else
2440 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2441 0, update);
2442 usb_switch_enable = ucontrol->value.integer.value[0];
2443 return 1;
2444}
2445
2446static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2447 struct snd_ctl_elem_value *ucontrol)
2448{
2449 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2450 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2451 ucontrol->value.integer.value[0]);
2452 return 0;
2453}
2454
2455static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2456 struct snd_ctl_elem_value *ucontrol)
2457{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302458 struct snd_soc_dapm_widget *widget =
2459 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302460 struct snd_soc_dapm_update *update = NULL;
2461
2462 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2463 ucontrol->value.integer.value[0]);
2464 if (ucontrol->value.integer.value[0])
2465 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2466 update);
2467 else
2468 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2469 update);
2470 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2471 return 1;
2472}
2473
2474static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2475 struct snd_ctl_elem_value *ucontrol)
2476{
2477 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2478 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2479 ucontrol->value.integer.value[0]);
2480 return 0;
2481}
2482
2483static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2484 struct snd_ctl_elem_value *ucontrol)
2485{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302486 struct snd_soc_dapm_widget *widget =
2487 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302488 struct snd_soc_dapm_update *update = NULL;
2489
2490 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2491 ucontrol->value.integer.value[0]);
2492 if (ucontrol->value.integer.value[0])
2493 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2494 update);
2495 else
2496 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2497 update);
2498 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2499 return 1;
2500}
2501
2502static int msm_routing_get_tert_mi2s_switch_mixer(
2503 struct snd_kcontrol *kcontrol,
2504 struct snd_ctl_elem_value *ucontrol)
2505{
2506 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2507 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2508 ucontrol->value.integer.value[0]);
2509 return 0;
2510}
2511
2512static int msm_routing_put_tert_mi2s_switch_mixer(
2513 struct snd_kcontrol *kcontrol,
2514 struct snd_ctl_elem_value *ucontrol)
2515{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302516 struct snd_soc_dapm_widget *widget =
2517 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302518 struct snd_soc_dapm_update *update = NULL;
2519
2520 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2521 ucontrol->value.integer.value[0]);
2522 if (ucontrol->value.integer.value[0])
2523 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2524 update);
2525 else
2526 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2527 update);
2528 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2529 return 1;
2530}
2531
2532static int msm_routing_get_quat_mi2s_switch_mixer(
2533 struct snd_kcontrol *kcontrol,
2534 struct snd_ctl_elem_value *ucontrol)
2535{
2536 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2537 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2538 ucontrol->value.integer.value[0]);
2539 return 0;
2540}
2541
2542static int msm_routing_put_quat_mi2s_switch_mixer(
2543 struct snd_kcontrol *kcontrol,
2544 struct snd_ctl_elem_value *ucontrol)
2545{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302546 struct snd_soc_dapm_widget *widget =
2547 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302548 struct snd_soc_dapm_update *update = NULL;
2549
2550 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2551 ucontrol->value.integer.value[0]);
2552 if (ucontrol->value.integer.value[0])
2553 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2554 update);
2555 else
2556 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2557 update);
2558 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2559 return 1;
2560}
2561
Rohit Kumara5077932017-09-10 22:05:05 +05302562static int msm_routing_get_quin_mi2s_switch_mixer(
2563 struct snd_kcontrol *kcontrol,
2564 struct snd_ctl_elem_value *ucontrol)
2565{
2566 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2567 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2568 ucontrol->value.integer.value[0]);
2569 return 0;
2570}
2571
2572static int msm_routing_put_quin_mi2s_switch_mixer(
2573 struct snd_kcontrol *kcontrol,
2574 struct snd_ctl_elem_value *ucontrol)
2575{
2576 struct snd_soc_dapm_widget *widget =
2577 snd_soc_dapm_kcontrol_widget(kcontrol);
2578 struct snd_soc_dapm_update *update = NULL;
2579
2580 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2581 ucontrol->value.integer.value[0]);
2582 if (ucontrol->value.integer.value[0])
2583 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2584 update);
2585 else
2586 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2587 update);
2588 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2589 return 1;
2590}
2591
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302592static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2593 struct snd_ctl_elem_value *ucontrol)
2594{
2595 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2596 pr_debug("%s: FM Switch enable %ld\n", __func__,
2597 ucontrol->value.integer.value[0]);
2598 return 0;
2599}
2600
2601static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2602 struct snd_ctl_elem_value *ucontrol)
2603{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302604 struct snd_soc_dapm_widget *widget =
2605 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302606 struct snd_soc_dapm_update *update = NULL;
2607
2608 pr_debug("%s: FM Switch enable %ld\n", __func__,
2609 ucontrol->value.integer.value[0]);
2610 if (ucontrol->value.integer.value[0])
2611 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2612 update);
2613 else
2614 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2615 update);
2616 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2617 return 1;
2618}
2619
2620static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2621 struct snd_ctl_elem_value *ucontrol)
2622{
2623 ucontrol->value.integer.value[0] = lsm_port_index;
2624 return 0;
2625}
2626
2627static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2628 struct snd_ctl_elem_value *ucontrol)
2629{
2630 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2631 int mux = ucontrol->value.enumerated.item[0];
2632 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2633
2634 if (mux >= e->items) {
2635 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2636 return -EINVAL;
2637 }
2638
2639 pr_debug("%s: LSM enable %ld\n", __func__,
2640 ucontrol->value.integer.value[0]);
2641 switch (ucontrol->value.integer.value[0]) {
2642 case 1:
2643 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2644 break;
2645 case 2:
2646 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2647 break;
2648 case 3:
2649 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2650 break;
2651 case 4:
2652 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2653 break;
2654 case 5:
2655 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2656 break;
2657 case 6:
2658 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2659 break;
2660 case 7:
2661 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2662 break;
2663 case 8:
2664 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2665 break;
2666 case 9:
2667 lsm_port = ADM_LSM_PORT_ID;
2668 break;
2669 case 10:
2670 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2671 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302672 case 11:
2673 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2674 break;
2675 case 12:
2676 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2677 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302678 case 13:
2679 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2680 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302681 case 14:
2682 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2683 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302684 default:
2685 pr_err("Default lsm port");
2686 break;
2687 }
2688 set_lsm_port(lsm_port);
2689 lsm_port_index = ucontrol->value.integer.value[0];
2690
2691 return 0;
2692}
2693
2694static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2695 struct snd_ctl_elem_value *ucontrol)
2696{
2697 int i;
2698 u16 port_id;
2699 enum afe_mad_type mad_type;
2700
2701 pr_debug("%s: enter\n", __func__);
2702 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2703 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2704 strlen(lsm_port_text[i])))
2705 break;
2706
2707 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002708 pr_warn("%s: Invalid id name %s\n", __func__,
2709 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302710 return -EINVAL;
2711 }
2712
2713 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2714
2715 /*Check for Tertiary/Quaternary/INT3 TX port*/
2716 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2717 strlen(lsm_port_text[7])))
2718 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2719
2720 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2721 strlen(lsm_port_text[8])))
2722 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2723
2724 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2725 strlen(lsm_port_text[10])))
2726 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2727
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302728 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2729 strlen(lsm_port_text[13])))
2730 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2731
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302732 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2733 strlen(lsm_port_text[14])))
2734 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302736 mad_type = afe_port_get_mad_type(port_id);
2737 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2738 mad_type);
2739 switch (mad_type) {
2740 case MAD_HW_NONE:
2741 ucontrol->value.integer.value[0] = MADNONE;
2742 break;
2743 case MAD_HW_AUDIO:
2744 ucontrol->value.integer.value[0] = MADAUDIO;
2745 break;
2746 case MAD_HW_BEACON:
2747 ucontrol->value.integer.value[0] = MADBEACON;
2748 break;
2749 case MAD_HW_ULTRASOUND:
2750 ucontrol->value.integer.value[0] = MADULTRASOUND;
2751 break;
2752 case MAD_SW_AUDIO:
2753 ucontrol->value.integer.value[0] = MADSWAUDIO;
2754 break;
2755 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002756 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302757 return -EINVAL;
2758 }
2759 return 0;
2760}
2761
2762static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2763 struct snd_ctl_elem_value *ucontrol)
2764{
2765 int i;
2766 u16 port_id;
2767 enum afe_mad_type mad_type;
2768
2769 pr_debug("%s: enter\n", __func__);
2770 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2771 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2772 strlen(lsm_port_text[i])))
2773 break;
2774
2775 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002776 pr_warn("%s: Invalid id name %s\n", __func__,
2777 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302778 return -EINVAL;
2779 }
2780
2781 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2782 switch (ucontrol->value.integer.value[0]) {
2783 case MADNONE:
2784 mad_type = MAD_HW_NONE;
2785 break;
2786 case MADAUDIO:
2787 mad_type = MAD_HW_AUDIO;
2788 break;
2789 case MADBEACON:
2790 mad_type = MAD_HW_BEACON;
2791 break;
2792 case MADULTRASOUND:
2793 mad_type = MAD_HW_ULTRASOUND;
2794 break;
2795 case MADSWAUDIO:
2796 mad_type = MAD_SW_AUDIO;
2797 break;
2798 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002799 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302800 return -EINVAL;
2801 }
2802
2803 /*Check for Tertiary/Quaternary/INT3 TX port*/
2804 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2805 strlen(lsm_port_text[7])))
2806 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2807
2808 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2809 strlen(lsm_port_text[8])))
2810 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2811
2812 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2813 strlen(lsm_port_text[10])))
2814 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2815
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302816 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2817 strlen(lsm_port_text[13])))
2818 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2819
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302820 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2821 strlen(lsm_port_text[14])))
2822 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2823
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302824 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2825 mad_type);
2826 return afe_port_set_mad_type(port_id, mad_type);
2827}
2828
2829static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2830
2831static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2832 adm_override_chs_text);
2833
2834static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2835{
2836 int backend_id;
2837
2838 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2839 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2840 } else {
2841 pr_err("%s: unsupported backend id: %s",
2842 __func__, kcontrol->id.name);
2843 return -EINVAL;
2844 }
2845
2846 return backend_id;
2847}
2848static int msm_routing_adm_channel_config_get(
2849 struct snd_kcontrol *kcontrol,
2850 struct snd_ctl_elem_value *ucontrol)
2851{
2852 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2853
2854 if (backend_id >= 0) {
2855 mutex_lock(&routing_lock);
2856 ucontrol->value.integer.value[0] =
2857 msm_bedais[backend_id].adm_override_ch;
2858 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2859 ucontrol->value.integer.value[0], backend_id);
2860 mutex_unlock(&routing_lock);
2861 }
2862
2863 return 0;
2864}
2865
2866static int msm_routing_adm_channel_config_put(
2867 struct snd_kcontrol *kcontrol,
2868 struct snd_ctl_elem_value *ucontrol)
2869{
2870 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2871
2872 if (backend_id >= 0) {
2873 mutex_lock(&routing_lock);
2874 msm_bedais[backend_id].adm_override_ch =
2875 ucontrol->value.integer.value[0];
2876 pr_debug("%s:updating BE :%d adm channels: %d\n",
2877 __func__, backend_id,
2878 msm_bedais[backend_id].adm_override_ch);
2879 mutex_unlock(&routing_lock);
2880 }
2881
2882 return 0;
2883}
2884
2885static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2886 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2887 msm_routing_adm_channel_config_get,
2888 msm_routing_adm_channel_config_put),
2889};
2890
2891static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2892 struct snd_ctl_elem_value *ucontrol)
2893{
2894
2895 mutex_lock(&routing_lock);
2896 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2897 mutex_unlock(&routing_lock);
2898 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2899 ucontrol->value.integer.value[0]);
2900 return 0;
2901};
2902
2903static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2904 struct snd_ctl_elem_value *ucontrol)
2905{
2906 struct aanc_data aanc_info;
2907
2908 mutex_lock(&routing_lock);
2909 memset(&aanc_info, 0x00, sizeof(aanc_info));
2910 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2911 ucontrol->value.integer.value[0]);
2912 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2913 if (ucontrol->value.integer.value[0] == 0) {
2914 aanc_info.aanc_active = false;
2915 aanc_info.aanc_tx_port = 0;
2916 aanc_info.aanc_rx_port = 0;
2917 } else {
2918 aanc_info.aanc_active = true;
2919 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2920 aanc_info.aanc_tx_port =
2921 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2922 }
2923 afe_set_aanc_info(&aanc_info);
2924 mutex_unlock(&routing_lock);
2925 return 0;
2926};
2927static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2928 struct snd_ctl_elem_value *ucontrol)
2929{
2930 int idx = 0, shift = 0;
2931 struct soc_mixer_control *mc =
2932 (struct soc_mixer_control *)kcontrol->private_value;
2933
Meng Wang05d5e9a2018-03-28 16:45:03 +08002934 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2935 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302936
2937 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2938 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2939 return -EINVAL;
2940 }
2941
2942 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002943 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302944 ucontrol->value.integer.value[0] = 1;
2945 else
2946 ucontrol->value.integer.value[0] = 0;
2947
Meng Wang05d5e9a2018-03-28 16:45:03 +08002948 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302949 ucontrol->value.integer.value[0]);
2950
2951 return 0;
2952}
2953
2954static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2955 struct snd_ctl_elem_value *ucontrol)
2956{
2957 int idx = 0, shift = 0;
2958 struct soc_mixer_control *mc =
2959 (struct soc_mixer_control *)kcontrol->private_value;
2960
Meng Wang05d5e9a2018-03-28 16:45:03 +08002961 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2962 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302963
2964 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2965 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2966 return -EINVAL;
2967 }
2968
Meng Wang05d5e9a2018-03-28 16:45:03 +08002969 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2970 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302971 ucontrol->value.integer.value[0], idx, shift);
2972
2973 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002974 afe_loopback(1, msm_bedais[mc->shift].port_id,
2975 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302976 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002977 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302978 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002979 afe_loopback(0, msm_bedais[mc->shift].port_id,
2980 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302981 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002982 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302983 }
2984
2985 return 1;
2986}
2987
2988static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2989 struct snd_ctl_elem_value *ucontrol)
2990{
2991 u16 fe_id = 0;
2992
2993 fe_id = ((struct soc_mixer_control *)
2994 kcontrol->private_value)->shift;
2995 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2996 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2997 return -EINVAL;
2998 }
2999
3000 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3001
3002 return 0;
3003}
3004
3005static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3006 struct snd_ctl_elem_value *ucontrol)
3007{
3008 u16 fe_id = 0;
3009
3010 fe_id = ((struct soc_mixer_control *)
3011 kcontrol->private_value)->shift;
3012 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3013 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3014 return -EINVAL;
3015 }
3016
3017 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3018
3019 return 1;
3020}
3021
3022static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3023 struct snd_ctl_elem_value *ucontrol)
3024{
3025 u16 fe_id = 0;
3026
3027 fe_id = ((struct soc_multi_mixer_control *)
3028 kcontrol->private_value)->shift;
3029 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3030 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3031 return -EINVAL;
3032 }
3033
3034 ucontrol->value.integer.value[0] =
3035 channel_mixer[fe_id].output_channel;
3036 return 0;
3037}
3038
3039static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3040 struct snd_ctl_elem_value *ucontrol)
3041{
3042 u16 fe_id = 0;
3043
3044 fe_id = ((struct soc_multi_mixer_control *)
3045 kcontrol->private_value)->shift;
3046 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3047 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3048 return -EINVAL;
3049 }
3050
3051 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3052 fe_id,
3053 (unsigned int)(ucontrol->value.integer.value[0]));
3054 channel_mixer[fe_id].output_channel =
3055 (unsigned int)(ucontrol->value.integer.value[0]);
3056
3057 return 1;
3058}
3059
3060static const char *const ch_mixer[] = {"Disable", "Enable"};
3061
3062/* If new backend is added, need update this array */
3063static const char *const be_name[] = {
3064"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3065"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3066"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3067"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3068"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3069"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3070"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3071"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3072"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3073"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3074"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3075"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003076"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303077"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3078"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3079"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3080"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3081"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3082"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3083"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3084"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3085"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3086"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3087"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3088"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3089"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3090"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3091"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3092"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3093"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303094"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3095"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3096"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3097"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003098"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303099"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303100"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303101"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3102"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3103"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303104"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3105"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003106"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303107"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3108"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3109"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3110"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3111"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303112};
3113
3114static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3115 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3116static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3117 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3118static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3119 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3120static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3121 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3122
3123static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3124 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3125static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3126 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3127static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3128 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3129static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3130 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3131static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3132 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3133static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3134 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3135static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3136 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3137static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3138 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3139
3140static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3141 unsigned int channels,
3142 unsigned int items, const char *const names[])
3143{
3144 if (uinfo->value.enumerated.item >= items)
3145 uinfo->value.enumerated.item = items - 1;
3146
3147 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3148 sizeof(uinfo->value.enumerated.name),
3149 "ALSA: too long item name '%s'\n",
3150 names[uinfo->value.enumerated.item]);
3151 strlcpy(uinfo->value.enumerated.name,
3152 names[uinfo->value.enumerated.item],
3153 sizeof(uinfo->value.enumerated.name));
3154 return 0;
3155}
3156
3157static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3158 struct snd_ctl_elem_info *uinfo)
3159{
3160 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3161
3162 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3163 uinfo->count = 1;
3164
3165 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3166 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3167
3168 return 0;
3169}
3170static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3171 struct snd_ctl_elem_value *ucontrol)
3172{
3173 u16 fe_id = 0;
3174
3175 fe_id = ((struct soc_enum *)
3176 kcontrol->private_value)->shift_l;
3177 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3178 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3179 return -EINVAL;
3180 }
3181
3182 pr_debug("%s: FE %d %s\n", __func__,
3183 fe_id,
3184 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3185 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3186 return 0;
3187}
3188
3189static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3190 struct snd_ctl_elem_value *ucontrol)
3191{
3192 u16 fe_id = 0;
3193
3194 fe_id = ((struct soc_enum *)
3195 kcontrol->private_value)->shift_l;
3196 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3197 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3198 return -EINVAL;
3199 }
3200
3201 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3202 pr_debug("%s: %s FE %d\n", __func__,
3203 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3204 fe_id);
3205 return 0;
3206}
3207
3208static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3209 struct snd_ctl_elem_info *uinfo)
3210{
3211 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3212
3213 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3214 uinfo->count = 1;
3215
3216 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3217 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3218
3219 return 0;
3220}
3221
3222static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3223 struct snd_ctl_elem_value *ucontrol)
3224{
3225 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3226 u16 fe_id = 0, in_ch = 0;
3227
3228 fe_id = e->shift_l;
3229 in_ch = e->shift_r;
3230 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3231 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3232 return -EINVAL;
3233 }
3234 if (in_ch >= ADM_MAX_CHANNELS) {
3235 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3236 return -EINVAL;
3237 }
3238
3239 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3240 return 1;
3241}
3242
3243static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3244 struct snd_ctl_elem_value *ucontrol)
3245{
3246 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3247 u16 fe_id = 0, in_ch = 0;
3248
3249 fe_id = e->shift_l;
3250 in_ch = e->shift_r;
3251 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3252 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3253 return -EINVAL;
3254 }
3255 if (in_ch >= ADM_MAX_CHANNELS) {
3256 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3257 return -EINVAL;
3258 }
3259
3260 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3261 return 1;
3262}
3263
3264
3265static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3266 struct snd_ctl_elem_info *uinfo)
3267{
3268 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3269 uinfo->count = ADM_MAX_CHANNELS;
3270 uinfo->value.integer.min = 0;
3271 uinfo->value.integer.max = WEIGHT_0_DB;
3272
3273 return 0;
3274}
3275
3276static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3277 struct snd_ctl_elem_value *ucontrol)
3278{
3279 u16 fe_id = 0, out_ch = 0;
3280 int i, weight;
3281
3282 fe_id = ((struct soc_multi_mixer_control *)
3283 kcontrol->private_value)->shift;
3284 out_ch = ((struct soc_multi_mixer_control *)
3285 kcontrol->private_value)->rshift;
3286 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3287 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3288 return -EINVAL;
3289 }
3290 if (out_ch >= ADM_MAX_CHANNELS) {
3291 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3292 return -EINVAL;
3293 }
3294
3295 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3296 __func__, fe_id,
3297 ucontrol->value.integer.value[0],
3298 ucontrol->value.integer.value[1],
3299 ucontrol->value.integer.value[2],
3300 ucontrol->value.integer.value[3],
3301 ucontrol->value.integer.value[4],
3302 ucontrol->value.integer.value[5],
3303 ucontrol->value.integer.value[6],
3304 ucontrol->value.integer.value[7]);
3305
3306 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3307 weight = ucontrol->value.integer.value[i];
3308 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3309 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3310 __func__, fe_id, out_ch, i,
3311 channel_mixer[fe_id].channel_weight[out_ch][i]);
3312 }
3313
3314 return 0;
3315}
3316
3317static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3318 struct snd_ctl_elem_value *ucontrol)
3319{
3320 u16 fe_id = 0, out_ch = 0;
3321 int i;
3322
3323 fe_id = ((struct soc_multi_mixer_control *)
3324 kcontrol->private_value)->shift;
3325 out_ch = ((struct soc_multi_mixer_control *)
3326 kcontrol->private_value)->rshift;
3327 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3328 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3329 return -EINVAL;
3330 }
3331 if (out_ch >= ADM_MAX_CHANNELS) {
3332 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3333 return -EINVAL;
3334 }
3335
3336 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3337 ucontrol->value.integer.value[i] =
3338 channel_mixer[fe_id].channel_weight[out_ch][i];
3339
3340 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3341 __func__, fe_id,
3342 ucontrol->value.integer.value[0],
3343 ucontrol->value.integer.value[1],
3344 ucontrol->value.integer.value[2],
3345 ucontrol->value.integer.value[3],
3346 ucontrol->value.integer.value[4],
3347 ucontrol->value.integer.value[5],
3348 ucontrol->value.integer.value[6],
3349 ucontrol->value.integer.value[7]);
3350
3351 return 0;
3352}
3353
3354static const struct snd_kcontrol_new channel_mixer_controls[] = {
3355 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3356 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3357 msm_pcm_get_channel_rule_index,
3358 msm_pcm_put_channel_rule_index),
3359 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3360 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3361 msm_pcm_get_channel_rule_index,
3362 msm_pcm_put_channel_rule_index),
3363 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3364 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3365 msm_pcm_get_channel_rule_index,
3366 msm_pcm_put_channel_rule_index),
3367 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3368 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3369 msm_pcm_get_channel_rule_index,
3370 msm_pcm_put_channel_rule_index),
3371 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3372 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3373 msm_pcm_get_channel_rule_index,
3374 msm_pcm_put_channel_rule_index),
3375 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3376 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3377 msm_pcm_get_channel_rule_index,
3378 msm_pcm_put_channel_rule_index),
3379
3380 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3381 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3382 msm_pcm_get_out_chs,
3383 msm_pcm_put_out_chs),
3384 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3385 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3386 msm_pcm_get_out_chs,
3387 msm_pcm_put_out_chs),
3388 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3389 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3390 msm_pcm_get_out_chs,
3391 msm_pcm_put_out_chs),
3392 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3393 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3394 msm_pcm_get_out_chs,
3395 msm_pcm_put_out_chs),
3396 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3397 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3398 msm_pcm_get_out_chs,
3399 msm_pcm_put_out_chs),
3400 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3401 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3402 msm_pcm_get_out_chs,
3403 msm_pcm_put_out_chs),
3404 {
3405 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3406 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3407 .name = "MultiMedia1 Channel Mixer",
3408 .info = msm_pcm_channel_mixer_info,
3409 .get = msm_pcm_channel_mixer_get,
3410 .put = msm_pcm_channel_mixer_put,
3411 .private_value = (unsigned long)&(mm1_channel_mux)
3412 },
3413 {
3414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3415 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3416 .name = "MultiMedia2 Channel Mixer",
3417 .info = msm_pcm_channel_mixer_info,
3418 .get = msm_pcm_channel_mixer_get,
3419 .put = msm_pcm_channel_mixer_put,
3420 .private_value = (unsigned long)&(mm2_channel_mux)
3421 },
3422 {
3423 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3424 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3425 .name = "MultiMedia3 Channel Mixer",
3426 .info = msm_pcm_channel_mixer_info,
3427 .get = msm_pcm_channel_mixer_get,
3428 .put = msm_pcm_channel_mixer_put,
3429 .private_value = (unsigned long)&(mm3_channel_mux)
3430 },
3431 {
3432 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3433 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3434 .name = "MultiMedia4 Channel Mixer",
3435 .info = msm_pcm_channel_mixer_info,
3436 .get = msm_pcm_channel_mixer_get,
3437 .put = msm_pcm_channel_mixer_put,
3438 .private_value = (unsigned long)&(mm4_channel_mux)
3439 },
3440 {
3441 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3442 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3443 .name = "MultiMedia1 Output Channel1",
3444 .info = msm_pcm_channel_weight_info,
3445 .get = msm_pcm_channel_weight_get,
3446 .put = msm_pcm_channel_weight_put,
3447 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3448 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3449 },
3450 {
3451 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3452 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3453 .name = "MultiMedia1 Output Channel2",
3454 .info = msm_pcm_channel_weight_info,
3455 .get = msm_pcm_channel_weight_get,
3456 .put = msm_pcm_channel_weight_put,
3457 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3458 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3459 },
3460 {
3461 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3462 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3463 .name = "MultiMedia1 Output Channel3",
3464 .info = msm_pcm_channel_weight_info,
3465 .get = msm_pcm_channel_weight_get,
3466 .put = msm_pcm_channel_weight_put,
3467 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3468 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3469 },
3470 {
3471 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3472 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3473 .name = "MultiMedia1 Output Channel4",
3474 .info = msm_pcm_channel_weight_info,
3475 .get = msm_pcm_channel_weight_get,
3476 .put = msm_pcm_channel_weight_put,
3477 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3478 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3479 },
3480 {
3481 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3482 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3483 .name = "MultiMedia1 Output Channel5",
3484 .info = msm_pcm_channel_weight_info,
3485 .get = msm_pcm_channel_weight_get,
3486 .put = msm_pcm_channel_weight_put,
3487 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3488 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3489 },
3490 {
3491 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3492 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3493 .name = "MultiMedia1 Output Channel6",
3494 .info = msm_pcm_channel_weight_info,
3495 .get = msm_pcm_channel_weight_get,
3496 .put = msm_pcm_channel_weight_put,
3497 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3498 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3499 },
3500 {
3501 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3502 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3503 .name = "MultiMedia1 Output Channel7",
3504 .info = msm_pcm_channel_weight_info,
3505 .get = msm_pcm_channel_weight_get,
3506 .put = msm_pcm_channel_weight_put,
3507 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3508 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3509 },
3510 {
3511 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3512 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3513 .name = "MultiMedia1 Output Channel8",
3514 .info = msm_pcm_channel_weight_info,
3515 .get = msm_pcm_channel_weight_get,
3516 .put = msm_pcm_channel_weight_put,
3517 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3518 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3519 },
3520 {
3521 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3522 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3523 .name = "MultiMedia2 Output Channel1",
3524 .info = msm_pcm_channel_weight_info,
3525 .get = msm_pcm_channel_weight_get,
3526 .put = msm_pcm_channel_weight_put,
3527 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3528 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3529 },
3530 {
3531 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3532 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3533 .name = "MultiMedia2 Output Channel2",
3534 .info = msm_pcm_channel_weight_info,
3535 .get = msm_pcm_channel_weight_get,
3536 .put = msm_pcm_channel_weight_put,
3537 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3538 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3539 },
3540 {
3541 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3542 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3543 .name = "MultiMedia2 Output Channel3",
3544 .info = msm_pcm_channel_weight_info,
3545 .get = msm_pcm_channel_weight_get,
3546 .put = msm_pcm_channel_weight_put,
3547 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3548 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3549 },
3550 {
3551 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3552 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3553 .name = "MultiMedia3 Output Channel1",
3554 .info = msm_pcm_channel_weight_info,
3555 .get = msm_pcm_channel_weight_get,
3556 .put = msm_pcm_channel_weight_put,
3557 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3558 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3559 },
3560 {
3561 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3562 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3563 .name = "MultiMedia3 Output Channel2",
3564 .info = msm_pcm_channel_weight_info,
3565 .get = msm_pcm_channel_weight_get,
3566 .put = msm_pcm_channel_weight_put,
3567 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3568 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3569 },
3570 {
3571 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3572 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3573 .name = "MultiMedia1 Channel1",
3574 .info = msm_pcm_channel_input_be_info,
3575 .get = msm_pcm_channel_input_be_get,
3576 .put = msm_pcm_channel_input_be_put,
3577 .private_value = (unsigned long)&(mm1_ch1_enum)
3578 },
3579 {
3580 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3581 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3582 .name = "MultiMedia1 Channel2",
3583 .info = msm_pcm_channel_input_be_info,
3584 .get = msm_pcm_channel_input_be_get,
3585 .put = msm_pcm_channel_input_be_put,
3586 .private_value = (unsigned long)&(mm1_ch2_enum)
3587 },
3588 {
3589 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3590 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3591 .name = "MultiMedia1 Channel3",
3592 .info = msm_pcm_channel_input_be_info,
3593 .get = msm_pcm_channel_input_be_get,
3594 .put = msm_pcm_channel_input_be_put,
3595 .private_value = (unsigned long)&(mm1_ch3_enum)
3596 },
3597 {
3598 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3599 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3600 .name = "MultiMedia1 Channel4",
3601 .info = msm_pcm_channel_input_be_info,
3602 .get = msm_pcm_channel_input_be_get,
3603 .put = msm_pcm_channel_input_be_put,
3604 .private_value = (unsigned long)&(mm1_ch4_enum)
3605 },
3606 {
3607 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3608 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3609 .name = "MultiMedia1 Channel5",
3610 .info = msm_pcm_channel_input_be_info,
3611 .get = msm_pcm_channel_input_be_get,
3612 .put = msm_pcm_channel_input_be_put,
3613 .private_value = (unsigned long)&(mm1_ch5_enum)
3614 },
3615 {
3616 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3617 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3618 .name = "MultiMedia1 Channel6",
3619 .info = msm_pcm_channel_input_be_info,
3620 .get = msm_pcm_channel_input_be_get,
3621 .put = msm_pcm_channel_input_be_put,
3622 .private_value = (unsigned long)&(mm1_ch6_enum)
3623 },
3624 {
3625 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3626 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3627 .name = "MultiMedia1 Channel7",
3628 .info = msm_pcm_channel_input_be_info,
3629 .get = msm_pcm_channel_input_be_get,
3630 .put = msm_pcm_channel_input_be_put,
3631 .private_value = (unsigned long)&(mm1_ch7_enum)
3632 },
3633 {
3634 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3635 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3636 .name = "MultiMedia1 Channel8",
3637 .info = msm_pcm_channel_input_be_info,
3638 .get = msm_pcm_channel_input_be_get,
3639 .put = msm_pcm_channel_input_be_put,
3640 .private_value = (unsigned long)&(mm1_ch8_enum)
3641 },
3642};
3643static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3644 struct snd_ctl_elem_value *ucontrol)
3645{
3646 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3647 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3648 ucontrol->value.integer.value[0]);
3649 return 0;
3650}
3651
3652static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3653 struct snd_ctl_elem_value *ucontrol)
3654{
3655 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3656 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3657 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3658 return 0;
3659}
3660
3661static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3662 "Four", "Five", "Six", "Seven", "Eight"};
3663
3664static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3665 struct snd_ctl_elem_value *ucontrol)
3666{
3667 switch (msm_ec_ref_bit_format) {
3668 case SNDRV_PCM_FORMAT_S24_LE:
3669 ucontrol->value.integer.value[0] = 2;
3670 break;
3671 case SNDRV_PCM_FORMAT_S16_LE:
3672 ucontrol->value.integer.value[0] = 1;
3673 break;
3674 default:
3675 ucontrol->value.integer.value[0] = 0;
3676 break;
3677 }
3678 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3679 __func__, ucontrol->value.integer.value[0]);
3680 return 0;
3681}
3682
3683static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3684 struct snd_ctl_elem_value *ucontrol)
3685{
3686 u16 bit_width = 0;
3687
3688 switch (ucontrol->value.integer.value[0]) {
3689 case 2:
3690 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3691 break;
3692 case 1:
3693 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3694 break;
3695 default:
3696 msm_ec_ref_bit_format = 0;
3697 break;
3698 }
3699
3700 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3701 bit_width = 16;
3702 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3703 bit_width = 24;
3704
3705 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3706 __func__, msm_ec_ref_bit_format);
3707 adm_ec_ref_rx_bit_width(bit_width);
3708 return 0;
3709}
3710
3711static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3712
3713static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3714 struct snd_ctl_elem_value *ucontrol)
3715{
3716 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3717 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3718 __func__, ucontrol->value.integer.value[0]);
3719 return 0;
3720}
3721
3722static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3723 struct snd_ctl_elem_value *ucontrol)
3724{
3725 switch (ucontrol->value.integer.value[0]) {
3726 case 0:
3727 msm_ec_ref_sampling_rate = 0;
3728 break;
3729 case 1:
3730 msm_ec_ref_sampling_rate = 8000;
3731 break;
3732 case 2:
3733 msm_ec_ref_sampling_rate = 16000;
3734 break;
3735 case 3:
3736 msm_ec_ref_sampling_rate = 32000;
3737 break;
3738 case 4:
3739 msm_ec_ref_sampling_rate = 44100;
3740 break;
3741 case 5:
3742 msm_ec_ref_sampling_rate = 48000;
3743 break;
3744 case 6:
3745 msm_ec_ref_sampling_rate = 96000;
3746 break;
3747 case 7:
3748 msm_ec_ref_sampling_rate = 192000;
3749 break;
3750 case 8:
3751 msm_ec_ref_sampling_rate = 384000;
3752 break;
3753 default:
3754 msm_ec_ref_sampling_rate = 48000;
3755 break;
3756 }
3757 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3758 __func__, msm_ec_ref_sampling_rate);
3759 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3760 return 0;
3761}
3762
3763static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3764 "32000", "44100", "48000", "96000", "192000", "384000"};
3765
3766static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3767 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3768 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3769 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3770};
3771
3772static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3773 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3774 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3775 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3776 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3777 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3778 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3779};
3780
3781static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3782 struct snd_ctl_elem_value *ucontrol)
3783{
3784 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3785 mutex_lock(&routing_lock);
3786 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3787 mutex_unlock(&routing_lock);
3788 return 0;
3789}
3790
3791static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3792 struct snd_ctl_elem_value *ucontrol)
3793{
3794 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303795 struct snd_soc_dapm_widget *widget =
3796 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303797 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3798 struct snd_soc_dapm_update *update = NULL;
3799
3800
3801 mutex_lock(&routing_lock);
3802 switch (ucontrol->value.integer.value[0]) {
3803 case 0:
3804 msm_route_ec_ref_rx = 0;
3805 ec_ref_port_id = AFE_PORT_INVALID;
3806 break;
3807 case 1:
3808 msm_route_ec_ref_rx = 1;
3809 ec_ref_port_id = SLIMBUS_0_RX;
3810 break;
3811 case 2:
3812 msm_route_ec_ref_rx = 2;
3813 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3814 break;
3815 case 3:
3816 msm_route_ec_ref_rx = 3;
3817 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3818 break;
3819 case 4:
3820 msm_route_ec_ref_rx = 4;
3821 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3822 break;
3823 case 5:
3824 msm_route_ec_ref_rx = 5;
3825 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3826 break;
3827 case 6:
3828 msm_route_ec_ref_rx = 6;
3829 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3830 break;
3831 case 7:
3832 msm_route_ec_ref_rx = 7;
3833 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3834 break;
3835 case 9:
3836 msm_route_ec_ref_rx = 9;
3837 ec_ref_port_id = SLIMBUS_5_RX;
3838 break;
3839 case 10:
3840 msm_route_ec_ref_rx = 10;
3841 ec_ref_port_id = SLIMBUS_1_TX;
3842 break;
3843 case 11:
3844 msm_route_ec_ref_rx = 11;
3845 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3846 break;
3847 case 12:
3848 msm_route_ec_ref_rx = 12;
3849 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3850 break;
3851 case 13:
3852 msm_route_ec_ref_rx = 13;
3853 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3854 break;
3855 case 14:
3856 msm_route_ec_ref_rx = 14;
3857 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3858 break;
3859 case 15:
3860 msm_route_ec_ref_rx = 15;
3861 ec_ref_port_id = SLIMBUS_6_RX;
3862 break;
3863 case 16:
3864 msm_route_ec_ref_rx = 16;
3865 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3866 break;
3867 case 17:
3868 msm_route_ec_ref_rx = 17;
3869 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3870 break;
3871 case 18:
3872 msm_route_ec_ref_rx = 18;
3873 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3874 break;
3875 case 19:
3876 msm_route_ec_ref_rx = 19;
3877 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3878 break;
3879 case 20:
3880 msm_route_ec_ref_rx = 20;
3881 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3882 break;
3883 case 21:
3884 msm_route_ec_ref_rx = 21;
3885 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3886 break;
3887 case 22:
3888 msm_route_ec_ref_rx = 22;
3889 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3890 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003891 case 23:
3892 msm_route_ec_ref_rx = 23;
3893 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3894 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303895 case 24:
3896 msm_route_ec_ref_rx = 24;
3897 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3898 break;
3899 case 25:
3900 msm_route_ec_ref_rx = 25;
3901 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3902 break;
3903 case 26:
3904 msm_route_ec_ref_rx = 26;
3905 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3906 break;
3907 case 27:
3908 msm_route_ec_ref_rx = 27;
3909 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3910 break;
3911 case 28:
3912 msm_route_ec_ref_rx = 28;
3913 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3914 break;
Zhou Songb167db12018-07-02 17:14:00 +08003915 case 29:
3916 msm_route_ec_ref_rx = 29;
3917 ec_ref_port_id = SLIMBUS_7_RX;
3918 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303919 case 30:
3920 msm_route_ec_ref_rx = 30;
3921 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3922 break;
3923 case 31:
3924 msm_route_ec_ref_rx = 31;
3925 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3926 break;
3927 case 32:
3928 msm_route_ec_ref_rx = 32;
3929 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3930 break;
3931 case 33:
3932 msm_route_ec_ref_rx = 33;
3933 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3934 break;
3935 case 34:
3936 msm_route_ec_ref_rx = 34;
3937 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3938 break;
Derek Chen2bb55772018-10-24 00:17:15 -07003939 case 35:
3940 msm_route_ec_ref_rx = 35;
3941 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
3942 break;
3943 case 36:
3944 msm_route_ec_ref_rx = 36;
3945 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
3946 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303947 default:
3948 msm_route_ec_ref_rx = 0; /* NONE */
3949 pr_err("%s EC ref rx %ld not valid\n",
3950 __func__, ucontrol->value.integer.value[0]);
3951 ec_ref_port_id = AFE_PORT_INVALID;
3952 break;
3953 }
3954 adm_ec_ref_rx_id(ec_ref_port_id);
3955 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3956 __func__, msm_route_ec_ref_rx);
3957 mutex_unlock(&routing_lock);
3958 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3959 msm_route_ec_ref_rx, e, update);
3960 return 0;
3961}
3962
3963static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3964 "PRI_MI2S_TX", "SEC_MI2S_TX",
3965 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3966 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3967 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3968 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303969 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3970 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003971 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303972 "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 -07003973 "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 +05303974};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303975
3976static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3977 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3978};
3979
3980static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3981 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3982 msm_route_ec_ref_rx_enum[0],
3983 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3984
3985static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3986 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3987 msm_route_ec_ref_rx_enum[0],
3988 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3989
3990static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3991 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3992 msm_route_ec_ref_rx_enum[0],
3993 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3994
3995static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3996 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3997 msm_route_ec_ref_rx_enum[0],
3998 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3999
4000static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4001 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4002 msm_route_ec_ref_rx_enum[0],
4003 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4004
4005static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4006 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4007 msm_route_ec_ref_rx_enum[0],
4008 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4009
4010static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4011 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4012 msm_route_ec_ref_rx_enum[0],
4013 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4014
4015static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4016 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4017 msm_route_ec_ref_rx_enum[0],
4018 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4019
Asish Bhattacharya34504582017-08-08 12:55:01 +05304020static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4021 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4022 msm_route_ec_ref_rx_enum[0],
4023 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4024
Laxminath Kasam38070be2017-08-17 18:21:59 +05304025static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4026 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4027 msm_route_ec_ref_rx_enum[0],
4028 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4029
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304030static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4031 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4032 msm_route_ec_ref_rx_enum[0],
4033 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4034
4035static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4036 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4037 msm_route_ec_ref_rx_enum[0],
4038 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4039
4040static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4041 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4042 msm_route_ec_ref_rx_enum[0],
4043 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4044
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304045static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4046 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4047 msm_route_ec_ref_rx_enum[0],
4048 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4049
4050static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4051 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4052 msm_route_ec_ref_rx_enum[0],
4053 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4054
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304055static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4056 struct snd_ctl_elem_value *ucontrol)
4057{
4058 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4059
4060 mutex_lock(&routing_lock);
4061 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4062 mutex_unlock(&routing_lock);
4063 return 0;
4064}
4065
4066static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4067 struct snd_ctl_elem_value *ucontrol)
4068{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304069 struct snd_soc_dapm_widget *widget =
4070 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304071 int mux = ucontrol->value.enumerated.item[0];
4072 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4073 int ret = 1;
4074 bool state = true;
4075 uint16_t ext_ec_ref_port_id;
4076 struct snd_soc_dapm_update *update = NULL;
4077
4078 if (mux >= e->items) {
4079 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4080 return -EINVAL;
4081 }
4082
4083 mutex_lock(&routing_lock);
4084 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4085
4086 switch (msm_route_ext_ec_ref) {
4087 case EXT_EC_REF_PRI_MI2S_TX:
4088 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4089 break;
4090 case EXT_EC_REF_SEC_MI2S_TX:
4091 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4092 break;
4093 case EXT_EC_REF_TERT_MI2S_TX:
4094 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4095 break;
4096 case EXT_EC_REF_QUAT_MI2S_TX:
4097 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4098 break;
4099 case EXT_EC_REF_QUIN_MI2S_TX:
4100 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4101 break;
4102 case EXT_EC_REF_SLIM_1_TX:
4103 ext_ec_ref_port_id = SLIMBUS_1_TX;
4104 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004105 case EXT_EC_REF_SEC_TDM_TX:
4106 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4107 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304108 case EXT_EC_REF_NONE:
4109 default:
4110 ext_ec_ref_port_id = AFE_PORT_INVALID;
4111 state = false;
4112 break;
4113 }
4114
4115 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4116 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4117
4118 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4119 mutex_unlock(&routing_lock);
4120 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4121 update);
4122 } else {
4123 ret = -EINVAL;
4124 mutex_unlock(&routing_lock);
4125 }
4126 return ret;
4127}
4128
4129static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4130 "SEC_MI2S_TX", "TERT_MI2S_TX",
4131 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004132 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304133
4134static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4135 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4136};
4137
4138static const struct snd_kcontrol_new voc_ext_ec_mux =
4139 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4140 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4141
4142
4143static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004144 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4145 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304146 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004148 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4149 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304150 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004152 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4153 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304154 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004156 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4157 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304158 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004160 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4161 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304162 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004164 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4165 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304166 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004168 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4169 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304170 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004172 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4173 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304174 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004176 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4177 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304178 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004180 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4181 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304182 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004184 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4185 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304186 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004188 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4189 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304190 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004192 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4193 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304194 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004196 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4197 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304198 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004200 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4201 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304202 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004204 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4205 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304206 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004208 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4209 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304210 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004212 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4213 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304214 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004216 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4217 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304218 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4219 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304220 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4221 MSM_BACKEND_DAI_PRI_I2S_RX,
4222 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004224 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4225 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304226 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004228 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4229 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304230 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4231 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304232};
4233
4234static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004235 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4236 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304237 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004239 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4240 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304241 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004243 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4244 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304245 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004247 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4248 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304249 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004251 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4252 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304253 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004255 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4256 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304257 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004259 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4260 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304261 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004263 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4264 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304265 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004267 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4268 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304269 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004271 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4272 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304273 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004275 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4276 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304277 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004279 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4280 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304281 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004283 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4284 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304285 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004287 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4288 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304289 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004291 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4292 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304293 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004295 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4296 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304297 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004299 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4300 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304301 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004303 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4304 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304305 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004307 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4308 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304309 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4310 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304311 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4312 MSM_BACKEND_DAI_SEC_I2S_RX,
4313 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004315 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4316 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304317 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004319 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4320 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304321 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4322 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304323};
4324
Ralf Herzc8701f72018-06-20 11:37:35 +02004325static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004326 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004327 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304328 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004330 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004331 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304332 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004334 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004335 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304336 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004338 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004339 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304340 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004342 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004343 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304344 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004346 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004347 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304348 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004350 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004351 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304352 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004354 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004355 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304356 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004358 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004359 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304360 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004362 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004363 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304364 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004366 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004367 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304368 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004370 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004371 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304372 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004374 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004375 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304376 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004378 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004379 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304380 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004382 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004383 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304384 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004386 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004387 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304388 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004390 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004391 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304392 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004394 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004395 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304396 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004398 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004399 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304400 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4401 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304402 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4403 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4404 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004406 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004407 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304408 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004410 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004411 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4412 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4413 msm_routing_put_audio_mixer),
4414};
4415
4416static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4417 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4418 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4419 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4420 msm_routing_put_audio_mixer),
4421 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4422 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4423 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4424 msm_routing_put_audio_mixer),
4425 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4426 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4427 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4428 msm_routing_put_audio_mixer),
4429 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4430 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4431 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4432 msm_routing_put_audio_mixer),
4433 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4434 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4435 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4436 msm_routing_put_audio_mixer),
4437 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4438 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4439 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4440 msm_routing_put_audio_mixer),
4441 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4442 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4443 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4444 msm_routing_put_audio_mixer),
4445 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4446 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4447 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4448 msm_routing_put_audio_mixer),
4449 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4450 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4451 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4452 msm_routing_put_audio_mixer),
4453 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4454 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4455 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4456 msm_routing_put_audio_mixer),
4457 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4458 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4459 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4460 msm_routing_put_audio_mixer),
4461 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4462 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4463 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4464 msm_routing_put_audio_mixer),
4465 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4466 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4467 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4468 msm_routing_put_audio_mixer),
4469 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4470 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4471 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4472 msm_routing_put_audio_mixer),
4473 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4474 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4475 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4476 msm_routing_put_audio_mixer),
4477 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4478 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4479 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4480 msm_routing_put_audio_mixer),
4481 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4482 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4483 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4484 msm_routing_put_audio_mixer),
4485 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4486 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4487 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4488 msm_routing_put_audio_mixer),
4489 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4490 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4491 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4492 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304493 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4494 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4495 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4496 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004497 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4498 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4499 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4500 msm_routing_put_audio_mixer),
4501 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4502 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304503 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4504 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304505};
4506
4507static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004508 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4509 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304510 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004512 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4513 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304514 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004516 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4517 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304518 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004520 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4521 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304522 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004524 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4525 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304526 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004528 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4529 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304530 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004532 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4533 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304534 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004536 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4537 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304538 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004540 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4541 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304542 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004544 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4545 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304546 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004548 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4549 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304550 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004552 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4553 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304554 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004556 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4557 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304558 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004560 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4561 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304562 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004564 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4565 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304566 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004568 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4569 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304570 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4571 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304572 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4573 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4574 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4575 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304576};
4577
4578static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004579 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4580 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304581 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004583 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4584 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304585 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004587 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4588 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004591 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4592 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304593 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004595 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4596 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004599 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4600 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304601 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004603 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4604 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304605 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004607 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4608 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004611 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4612 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304613 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004615 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4616 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304617 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004619 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4620 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304621 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004623 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4624 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304625 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004627 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4628 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304629 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004631 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4632 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304633 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004635 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4636 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304637 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004639 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4640 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304641 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004643 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4644 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304645 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004647 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4648 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304649 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004651 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4652 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304653 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4654 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304655 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4656 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4657 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004659 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4660 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304661 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004663 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4664 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304665 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4666 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304667};
4668
4669static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004670 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4671 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304672 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004674 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4675 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304676 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004678 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4679 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304680 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004682 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4683 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304684 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004686 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4687 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304688 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004690 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4691 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304692 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004694 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4695 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304696 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004698 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4699 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304700 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004702 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4703 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304704 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004706 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4707 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304708 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004710 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4711 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304712 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004714 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4715 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304716 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004718 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4719 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304720 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004722 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4723 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304724 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004726 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4727 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304728 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004730 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4731 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304732 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004734 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4735 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304736 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004738 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4739 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304740 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004742 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4743 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304744 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4745 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304746 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4747 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4748 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004750 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4751 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304752 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004754 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4755 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304756 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4757 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304758};
4759
4760static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004761 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4762 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304763 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004765 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4766 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304767 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004769 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4770 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304771 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004773 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4774 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304775 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004777 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4778 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304779 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004781 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4782 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304783 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004785 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4786 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304787 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004789 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4790 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304791 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004793 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4794 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304795 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004797 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4798 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304799 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004801 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4802 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304803 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004805 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4806 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304807 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004809 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4810 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304811 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004813 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4814 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304815 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004817 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4818 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304819 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004821 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4822 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304823 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004825 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4826 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304827 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004829 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4830 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304831 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004833 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4834 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304835 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4836 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304837 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_MI2S_RX,
4839 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004841 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304843 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004845 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304849};
4850
4851static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004852 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4853 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304854 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004856 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4857 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304858 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004860 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4861 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304862 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004864 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4865 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304866 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004868 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4869 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304870 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004872 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4873 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304874 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004876 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4877 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304878 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004880 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4881 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304882 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004884 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4885 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304886 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004888 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4889 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304890 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004892 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4893 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304894 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004896 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4897 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304898 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004900 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4901 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304902 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004904 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4905 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304906 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004908 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4909 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304910 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004912 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4913 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304914 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004916 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4917 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304918 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004920 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4921 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304922 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004924 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4925 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304926 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4927 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304928 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4929 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
4930 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004932 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4933 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304934 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004936 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4937 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304940};
4941
4942static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004943 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4944 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304945 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004947 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4948 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304949 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004951 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4952 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304953 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004955 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4956 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304957 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004959 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4960 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304961 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004963 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4964 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304965 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004967 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4968 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304969 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004971 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4972 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304973 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004975 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4976 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304977 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004979 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4980 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304981 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004983 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4984 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304985 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004987 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4988 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304989 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004991 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4992 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304993 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004995 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4996 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304997 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004999 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5000 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305001 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005003 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5004 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305005 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005007 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5008 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305009 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005011 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5012 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305013 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005015 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5016 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305017 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5018 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305019 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5020 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5021 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005023 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5024 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305025 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005027 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5028 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305029 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5030 msm_routing_put_audio_mixer),
5031
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305032};
5033
5034static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005035 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5036 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305037 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005039 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5040 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305041 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005043 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5044 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305045 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005047 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5048 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305049 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005051 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5052 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305053 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005055 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5056 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305057 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005059 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5060 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305061 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005063 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5064 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305065 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005067 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5068 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305069 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005071 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5072 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305073 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005075 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5076 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305077 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005079 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5080 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305081 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005083 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5084 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305085 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005087 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5088 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305089 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005091 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5092 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305093 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005095 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5096 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305097 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005099 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305103 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5104 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5105 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005107 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5108 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305109 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005111 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5112 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305113 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5114 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305115};
5116
5117static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005118 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5119 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305120 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5121 msm_routing_put_audio_mixer),
5122};
5123
5124static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005125 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5126 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005129 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5130 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305131 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005133 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5134 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305135 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005137 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5138 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305139 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005141 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5142 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305143 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005145 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5146 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305147 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005149 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5150 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305151 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005153 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5154 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305155 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005157 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5158 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305159 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005161 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5162 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305163 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005165 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5166 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305167 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005169 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5170 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305171 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005173 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5174 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305175 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005177 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5178 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305179 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005181 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5182 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305183 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005185 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5186 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305187 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005189 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5190 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305191 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005193 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5194 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305195 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005197 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5198 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305199 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5200 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305201 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5202 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5203 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005205 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5206 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305207 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005209 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5210 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305211 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5212 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305213};
5214
5215static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005216 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5217 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305218 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005220 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5221 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305222 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005224 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5225 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305226 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005228 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5229 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305230 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005232 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5233 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305234 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005236 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5237 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305238 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005240 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5241 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305242 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005244 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5245 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305246 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005248 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5249 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305250 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005252 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5253 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305254 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005256 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5257 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305258 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005260 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5261 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305262 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005264 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5265 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305266 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005268 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5269 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305270 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005272 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5273 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305274 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005276 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5277 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305278 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005280 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5281 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305282 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005284 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5285 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305286 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005288 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5289 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305290 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5291 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305292 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5293 MSM_BACKEND_DAI_PRI_MI2S_RX,
5294 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005296 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5297 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305298 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005300 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5301 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305302 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5303 msm_routing_put_audio_mixer),
5304
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305305};
5306
5307static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005308 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5309 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305310 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005312 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5313 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305314 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005316 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5317 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305318 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005320 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5321 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305322 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005324 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5325 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305326 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005328 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5329 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305330 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005332 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5333 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305334 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005336 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5337 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305338 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005340 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5341 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305342 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005344 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5345 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305346 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005348 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5349 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305350 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005352 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5353 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305354 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005356 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5357 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305358 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005360 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5361 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305362 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005364 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5365 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305366 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005368 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5369 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305370 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5371 msm_routing_put_audio_mixer),
5372};
5373
5374static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005375 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5376 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305377 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005379 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5380 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305381 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005383 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5384 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305385 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005387 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5388 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305389 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005391 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5392 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305393 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005395 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5396 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305397 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005399 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5400 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305401 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005403 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5404 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305405 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005407 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5408 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305409 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005411 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5412 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305413 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005415 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5416 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305417 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005419 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5420 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305421 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005423 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5424 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305425 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005427 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5428 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305429 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005431 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5432 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305433 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005435 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5436 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305437 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5438 msm_routing_put_audio_mixer),
5439};
5440
5441static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005442 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5443 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305444 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005446 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5447 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305448 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005450 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5451 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305452 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005454 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5455 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005458 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5459 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005462 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5463 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305464 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005466 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5467 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305468 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005470 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5471 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305472 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005474 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5475 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005478 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5479 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305480 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005482 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5483 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305484 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005486 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5487 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305488 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005490 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5491 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305492 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005494 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5495 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305496 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005498 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5499 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305500 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005502 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5503 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305504 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005506 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5507 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305508 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005510 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5511 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305512 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005514 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5515 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305516 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5517 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305518 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5519 MSM_BACKEND_DAI_HDMI_RX,
5520 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005522 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5523 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305524 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005526 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5527 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305528 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5529 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305530};
5531
5532static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005533 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5534 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305535 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005537 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5538 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305539 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005541 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5542 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305543 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005545 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5546 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305547 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005549 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5550 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305551 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005553 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5554 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305555 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005557 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5558 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305559 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005561 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5562 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305563 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005565 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5566 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305567 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005569 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5570 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305571 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005573 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5574 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305575 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005577 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5578 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305579 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005581 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5582 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305583 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005585 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5586 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305587 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005589 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5590 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305591 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005593 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5594 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305595 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5596 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305597 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5598 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5599 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5600 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305601};
5602
Karthikeyan Mani57550082018-05-03 18:43:58 -07005603static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5604 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5605 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5606 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5607 msm_routing_put_audio_mixer),
5608 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5609 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5610 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5611 msm_routing_put_audio_mixer),
5612 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5613 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5614 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5615 msm_routing_put_audio_mixer),
5616 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5617 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5618 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5619 msm_routing_put_audio_mixer),
5620 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5621 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5622 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5623 msm_routing_put_audio_mixer),
5624 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5625 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5626 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5627 msm_routing_put_audio_mixer),
5628 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5629 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5630 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5631 msm_routing_put_audio_mixer),
5632 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5633 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5634 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5635 msm_routing_put_audio_mixer),
5636 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5637 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5638 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5639 msm_routing_put_audio_mixer),
5640 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5641 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5642 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5643 msm_routing_put_audio_mixer),
5644 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5645 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5646 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5647 msm_routing_put_audio_mixer),
5648 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5649 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5650 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5651 msm_routing_put_audio_mixer),
5652 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5653 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5654 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5655 msm_routing_put_audio_mixer),
5656 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5657 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5658 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5659 msm_routing_put_audio_mixer),
5660 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5661 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5662 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5663 msm_routing_put_audio_mixer),
5664 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5665 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5666 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5667 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305668 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5669 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5670 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5671 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005672};
5673
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305674 /* incall music delivery mixer */
5675static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005676 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5677 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305678 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005680 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5681 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305682 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005684 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5685 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305686 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005688 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5689 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305690 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5691 msm_routing_put_audio_mixer),
5692};
5693
5694static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005695 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5696 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305697 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005699 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5700 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305701 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005703 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5704 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305705 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005707 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5708 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5710 msm_routing_put_audio_mixer),
5711};
5712
5713static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005714 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5715 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305716 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005718 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305720 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005722 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5723 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305724 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005726 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5727 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305728 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5729 msm_routing_put_audio_mixer),
5730};
5731
5732static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005733 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305735 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005741 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005745 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305797 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5799 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305801};
5802
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305803static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5804 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5806 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
5808 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5810 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
5812 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5814 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
5816 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5818 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
5820 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5822 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
5824 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5826 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
5828 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5830 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
5832 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5834 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
5836 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5838 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
5840 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5842 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
5844 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5846 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
5848 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5850 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
5852 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5854 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
5856 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5858 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
5860 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5862 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
5864 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5866 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305868 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5870 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305872};
5873
5874static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5875 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5876 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5877 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5878 msm_routing_put_audio_mixer),
5879 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5881 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
5883 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5885 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
5887 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5889 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
5891 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5892 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5893 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5894 msm_routing_put_audio_mixer),
5895 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5897 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
5899 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5901 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
5903 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5905 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
5907 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5909 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
5911 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5913 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
5915 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5917 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
5919 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5920 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5921 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
5923 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5925 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
5927 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5929 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
5931 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5933 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
5935 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5937 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305939 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5941 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305943};
5944
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305945static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5946 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5947 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5948 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
5950 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5952 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
5954 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5955 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5956 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
5958 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5959 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5960 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5961 msm_routing_put_audio_mixer),
5962 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5963 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5964 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5965 msm_routing_put_audio_mixer),
5966 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5967 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5968 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5969 msm_routing_put_audio_mixer),
5970 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5971 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5972 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5973 msm_routing_put_audio_mixer),
5974 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5976 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
5978 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5980 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
5982 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5984 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
5986 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5988 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
5990 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5992 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
5994 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5996 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
5998 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6000 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
6002 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6004 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
6006 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6008 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306010 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6012 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306014};
6015
6016static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6017 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6019 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
6021 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6023 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
6025 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6026 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6027 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6028 msm_routing_put_audio_mixer),
6029 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6030 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6031 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6032 msm_routing_put_audio_mixer),
6033 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6034 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6035 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6036 msm_routing_put_audio_mixer),
6037 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6038 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6039 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6040 msm_routing_put_audio_mixer),
6041 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6042 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6043 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6044 msm_routing_put_audio_mixer),
6045 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6046 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6047 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6048 msm_routing_put_audio_mixer),
6049 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6050 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6051 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6052 msm_routing_put_audio_mixer),
6053 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6054 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6055 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6056 msm_routing_put_audio_mixer),
6057 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6058 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6059 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6060 msm_routing_put_audio_mixer),
6061 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6062 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6063 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6064 msm_routing_put_audio_mixer),
6065 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6066 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6067 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6068 msm_routing_put_audio_mixer),
6069 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6071 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
6073 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6075 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
6077 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6079 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306081 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6083 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306085};
6086
6087static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6088 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6090 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
6092 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6093 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6094 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6095 msm_routing_put_audio_mixer),
6096 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6097 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6098 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6099 msm_routing_put_audio_mixer),
6100 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6101 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6102 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6103 msm_routing_put_audio_mixer),
6104 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6105 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6106 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6107 msm_routing_put_audio_mixer),
6108 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6110 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
6112 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6114 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
6116 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6118 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
6120 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6121 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6122 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6123 msm_routing_put_audio_mixer),
6124 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6125 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6126 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6127 msm_routing_put_audio_mixer),
6128 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6129 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6130 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6131 msm_routing_put_audio_mixer),
6132 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6134 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
6136 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6138 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
6140 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6142 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
6144 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6146 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
6148 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6150 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306152 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6154 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306156};
6157
6158static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6159 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6160 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6161 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6162 msm_routing_put_audio_mixer),
6163 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6164 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6165 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6166 msm_routing_put_audio_mixer),
6167 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6168 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6169 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6170 msm_routing_put_audio_mixer),
6171 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6172 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6173 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6174 msm_routing_put_audio_mixer),
6175 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6176 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6177 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6178 msm_routing_put_audio_mixer),
6179 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6181 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
6183 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6185 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
6187 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6189 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
6191 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6192 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6193 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6194 msm_routing_put_audio_mixer),
6195 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6197 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
6199 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6201 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
6203 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6204 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6205 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6206 msm_routing_put_audio_mixer),
6207 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6209 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
6211 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6213 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
6215 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6217 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
6219 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6221 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306223 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6225 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306227};
6228
6229static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6230 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6231 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6232 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6233 msm_routing_put_audio_mixer),
6234 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6235 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6236 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6237 msm_routing_put_audio_mixer),
6238 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6239 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6240 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6241 msm_routing_put_audio_mixer),
6242 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6243 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6244 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6245 msm_routing_put_audio_mixer),
6246 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6247 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6248 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6249 msm_routing_put_audio_mixer),
6250 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6252 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
6254 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6255 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6256 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6257 msm_routing_put_audio_mixer),
6258 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6259 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6260 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6261 msm_routing_put_audio_mixer),
6262 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6263 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6264 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6265 msm_routing_put_audio_mixer),
6266 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6267 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6268 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6269 msm_routing_put_audio_mixer),
6270 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6271 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6272 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6273 msm_routing_put_audio_mixer),
6274 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6275 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6276 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6277 msm_routing_put_audio_mixer),
6278 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6279 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6280 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6281 msm_routing_put_audio_mixer),
6282 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6284 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
6286 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6287 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6288 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6289 msm_routing_put_audio_mixer),
6290 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6291 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6292 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6293 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306294 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6296 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306298};
6299
6300static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6301 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6302 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6303 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6304 msm_routing_put_audio_mixer),
6305 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6307 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
6309 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6311 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
6313 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6315 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
6317 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6319 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
6321 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6323 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
6325 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6327 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
6329 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6331 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
6333 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6335 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
6337 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6338 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6339 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6340 msm_routing_put_audio_mixer),
6341 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6342 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6343 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6344 msm_routing_put_audio_mixer),
6345 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6346 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6347 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6348 msm_routing_put_audio_mixer),
6349 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6350 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6351 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6352 msm_routing_put_audio_mixer),
6353 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6355 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6356 msm_routing_put_audio_mixer),
6357 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6358 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6359 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6360 msm_routing_put_audio_mixer),
6361 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6362 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6363 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6364 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306365 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6367 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6368 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306369};
6370
6371static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6372 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6373 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6374 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6375 msm_routing_put_audio_mixer),
6376 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6378 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
6380 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6382 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
6384 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6386 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
6388 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6390 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
6392 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6394 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
6396 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6398 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
6400 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6401 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6402 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6403 msm_routing_put_audio_mixer),
6404 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6405 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6406 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6407 msm_routing_put_audio_mixer),
6408 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6409 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6410 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6411 msm_routing_put_audio_mixer),
6412 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6413 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6414 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6415 msm_routing_put_audio_mixer),
6416 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6417 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6418 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6419 msm_routing_put_audio_mixer),
6420 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6421 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6422 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6423 msm_routing_put_audio_mixer),
6424 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6425 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6426 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6427 msm_routing_put_audio_mixer),
6428 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6429 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6430 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6431 msm_routing_put_audio_mixer),
6432 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6434 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6435 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306436 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6437 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6438 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6439 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306440};
6441
6442static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6443 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6444 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6445 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6446 msm_routing_put_audio_mixer),
6447 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6449 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
6451 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6453 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
6455 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6457 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
6459 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6461 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
6463 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6465 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
6467 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6469 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
6471 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6473 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6474 msm_routing_put_audio_mixer),
6475 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6477 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6478 msm_routing_put_audio_mixer),
6479 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6481 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
6483 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6485 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
6487 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6488 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6489 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6490 msm_routing_put_audio_mixer),
6491 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6492 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6493 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6494 msm_routing_put_audio_mixer),
6495 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6496 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6497 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6498 msm_routing_put_audio_mixer),
6499 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6500 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6501 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6502 msm_routing_put_audio_mixer),
6503 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6504 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6505 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6506 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306507 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6508 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6509 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6510 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306511};
6512
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306513static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006514 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306516 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006518 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306520 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006522 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306524 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006526 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306528 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006530 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306532 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006534 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306536 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006538 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6539 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306540 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006542 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306544 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006546 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306548 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006550 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306552 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006554 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306556 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006558 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6559 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306560 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006562 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6563 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306564 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006566 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6567 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306568 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006570 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6571 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306572 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006574 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6575 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306576 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6577 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306578 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6579 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6580 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6581 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306582};
6583
Surendar Karka3ef3d812018-09-28 18:52:35 +05306584static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6585 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6587 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
6589 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6591 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
6593 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6595 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
6597 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6599 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
6601 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6603 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
6605 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6606 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6607 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6608 msm_routing_put_audio_mixer),
6609 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6610 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6611 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6612 msm_routing_put_audio_mixer),
6613 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6614 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6615 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6616 msm_routing_put_audio_mixer),
6617 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6618 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6619 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6620 msm_routing_put_audio_mixer),
6621 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6622 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6623 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6624 msm_routing_put_audio_mixer),
6625 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6626 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6627 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6628 msm_routing_put_audio_mixer),
6629 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6630 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6631 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6632 msm_routing_put_audio_mixer),
6633 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6634 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6635 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6636 msm_routing_put_audio_mixer),
6637 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6638 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6639 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6640 msm_routing_put_audio_mixer),
6641 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6642 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6643 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6644 msm_routing_put_audio_mixer),
6645 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6646 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6647 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6648 msm_routing_put_audio_mixer),
6649 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6650 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6651 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6652 msm_routing_put_audio_mixer),
6653};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306654static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006655 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6656 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306657 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006659 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306661 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006663 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306665 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006667 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306669 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006671 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306673 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006675 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306677 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006679 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306681 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006683 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306685 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006687 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306689 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006691 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306693 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006695 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306697 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006699 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306701 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006703 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306705 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006707 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006711 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006715 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306719 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_USB_RX,
6721 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306723};
6724
6725static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006726 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6727 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306728 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006730 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306732 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006734 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306736 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006738 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306740 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006742 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006746 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006750 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006754 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006758 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006762 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006766 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006770 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006798 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306802 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6804 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006806 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306808 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306814};
6815
6816static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006817 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006821 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306881 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
6883 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306885};
6886
6887static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006888 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306890 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006892 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306894 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006896 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306898 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006900 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306902 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006904 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306906 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006908 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306910 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006912 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006932 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306964 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_INT_FM_RX,
6966 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006968 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306970 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006972 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306974 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306976};
6977
6978static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006979 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6980 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306981 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006983 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006987 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006991 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306993 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006995 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306997 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006999 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307001 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007003 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7004 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307005 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007007 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307009 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007011 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307013 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007027 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007039 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307041 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007043 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7044 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307045 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007047 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307049 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007051 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307053 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307055 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7056 MSM_BACKEND_DAI_AFE_PCM_RX,
7057 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007059 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7060 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307061 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007063 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7064 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307065 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7066 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307067};
7068
7069static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007070 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7071 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307072 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007074 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307076 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007078 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7079 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307080 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007082 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307084 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007086 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7087 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307088 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007090 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7091 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307092 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007094 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7095 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307096 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007098 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7099 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307100 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007102 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7103 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307104 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007106 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7107 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307108 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007110 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7111 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307112 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007114 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7115 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307116 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007118 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7119 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307120 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007122 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7123 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307124 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007126 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7127 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307128 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007130 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7131 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307132 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007134 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7135 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307136 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007138 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7139 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307140 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007142 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7143 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307144 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7145 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007146 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7147 MSM_BACKEND_DAI_AUXPCM_RX,
7148 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7149 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307150 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7151 MSM_BACKEND_DAI_AUXPCM_RX,
7152 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007154 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7155 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307156 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007158 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7159 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307160 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7161 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307162};
7163
7164static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007165 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7166 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307167 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007173 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7174 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307175 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007177 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7178 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307179 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007181 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7182 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307183 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007185 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7186 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307187 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007189 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7190 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307191 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007193 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7194 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307195 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007197 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7198 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307199 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007201 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7202 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307203 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007205 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7206 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307207 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007209 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7210 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307211 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007213 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7214 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307215 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007217 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7218 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307219 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007221 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7222 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307223 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007225 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7226 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307227 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007229 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7230 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307231 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007233 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7234 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307235 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007237 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7238 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307239 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7240 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007241 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7242 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7243 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7244 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307245 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7246 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7247 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007249 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7250 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307251 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007253 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7254 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307255 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7256 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307257};
7258
7259static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007260 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7261 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307262 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007264 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7265 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307266 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007268 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7269 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307270 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007272 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7273 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307274 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007276 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7277 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307278 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007280 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7281 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307282 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007284 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7285 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307286 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007288 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7289 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307290 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007292 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7293 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307294 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007296 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7297 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307298 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007300 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7301 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307302 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007304 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7305 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307306 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007308 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7309 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307310 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007312 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7313 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307314 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007316 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7317 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307318 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007320 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7321 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307322 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7323 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307324 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7325 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7326 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7327 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328};
7329
7330static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007331 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7332 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307333 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007335 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307337 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007339 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7340 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307341 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007343 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7344 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307345 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007347 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7348 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307349 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007351 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7352 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307353 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007355 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7356 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307357 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007359 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7360 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307361 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007363 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7364 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307365 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007367 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7368 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307369 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007371 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7372 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307373 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007375 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7376 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307377 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007379 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7380 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307381 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007383 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7384 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307385 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007387 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7388 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307389 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007391 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7392 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307393 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7394 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307395 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7396 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7397 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7398 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399};
7400
Rohit Kumara5077932017-09-10 22:05:05 +05307401static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007402 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7403 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307404 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007406 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307408 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007410 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007414 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007418 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307420 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007422 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7423 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307424 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007426 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307428 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007430 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7431 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307432 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007434 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7435 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307436 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007438 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7439 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307440 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007442 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7443 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307444 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007446 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7447 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307448 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007450 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7451 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307452 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007454 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7455 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307456 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007458 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7459 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307460 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007462 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7463 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307464 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7465 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307466 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7467 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7468 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7469 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307470};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307471static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007508 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307510 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007512 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307514 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007516 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307518 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007532 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307534 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007536 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7538 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307540};
7541
7542static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007543 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307545 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007555 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307557 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007559 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307561 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007563 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307565 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007567 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307569 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007571 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307573 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007575 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307577 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007579 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307581 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007583 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307585 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007587 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307589 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007591 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307593 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007595 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307597 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007599 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307601 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007603 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307605 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007607 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7609 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307611};
7612
7613static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007622 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307624 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007626 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7627 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307628 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007630 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7631 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307632 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007634 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307636 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007638 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307640 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007642 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307644 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007646 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7647 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307648 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007650 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307652 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007654 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307656 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007658 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307660 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007662 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307664 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007666 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7667 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307668 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007670 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7671 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307672 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007674 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7675 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307676 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7677 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007678 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7679 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7680 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7681 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307682};
7683
7684static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007713 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307715 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007717 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307719 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007721 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307723 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007725 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307727 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007729 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7730 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307731 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007733 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7734 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307735 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007737 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7738 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307739 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007741 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7742 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307743 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007745 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7746 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307747 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7748 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007749 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7750 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7751 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7752 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307753};
7754
7755static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007756 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307758 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007760 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007764 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307766 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007768 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7769 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307770 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007772 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7773 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307774 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007776 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7777 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307778 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007780 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7781 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307782 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007784 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7785 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307786 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007788 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7789 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307790 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007792 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7793 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307794 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007796 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7797 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307798 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007800 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7801 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307802 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007804 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7805 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307806 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007808 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7809 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307810 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007812 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7813 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307814 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007816 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7817 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307818 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7819 msm_routing_put_audio_mixer),
7820};
7821
7822static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007823 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307825 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007827 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007831 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307833 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007835 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307837 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007839 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7840 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307841 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007843 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7844 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307845 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007847 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7848 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307849 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007851 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7852 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307853 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007855 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7856 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307857 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007859 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7860 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307861 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007863 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307865 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007867 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7868 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307869 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007871 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7872 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307873 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007875 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7876 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307877 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007879 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7880 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307881 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007883 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7884 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307885 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7886 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007887 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7888 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7889 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7890 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307891};
7892
7893static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007894 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307896 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007898 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307900 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007902 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307904 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007906 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7907 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307908 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007910 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7911 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307912 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007914 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7915 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307916 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007918 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7919 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307920 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007922 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7923 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307924 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007926 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7927 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307928 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007930 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7931 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307932 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007934 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7935 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307936 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007938 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7939 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307940 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007942 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7943 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307944 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007946 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7947 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307948 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007950 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7951 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307952 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007954 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7955 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307956 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7957 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007958 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7959 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7960 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7961 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307962};
7963
7964static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007965 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307967 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007969 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307971 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007973 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307975 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007977 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7978 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307979 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007981 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7982 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307983 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007985 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7986 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307987 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007989 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7990 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307991 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007993 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7994 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307995 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007997 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7998 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307999 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008001 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8002 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308003 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008005 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8006 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308007 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008009 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8010 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308011 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008013 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8014 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308015 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008017 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8018 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308019 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008021 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8022 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308023 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008025 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8026 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308027 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8028 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008029 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8030 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8031 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8032 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308033};
8034
8035static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008036 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308038 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008040 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308042 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008044 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8045 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308046 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008048 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8049 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308050 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008052 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8053 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308054 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008056 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8057 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308058 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008060 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8061 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308062 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008064 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8065 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308066 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008068 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8069 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308070 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008072 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8073 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308074 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008076 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8077 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308078 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008080 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8081 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308082 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008084 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8085 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308086 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008088 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8089 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308090 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008092 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8093 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308094 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008096 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8097 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308098 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8099 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008100 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8101 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8102 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8103 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308104};
8105
8106static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008107 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008111 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308113 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008115 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308117 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008119 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308121 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008123 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308125 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008127 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308129 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008131 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308133 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008135 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308137 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008139 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308141 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008143 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308145 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008147 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308149 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008151 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8152 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308153 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008155 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8156 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308157 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008159 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8160 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308161 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008163 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308165 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008167 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308169 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
8171};
8172
8173static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008174 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308176 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008178 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308180 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008182 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308184 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008186 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8187 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308188 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008190 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8191 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308192 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008194 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8195 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308196 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008198 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8199 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308200 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008202 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8203 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308204 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008206 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8207 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308208 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008210 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8211 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308212 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008214 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8215 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308216 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008218 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8219 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308220 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008222 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8223 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308224 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008226 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8227 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308228 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008230 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8231 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308232 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008234 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308236 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008238 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8240 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308242};
8243
8244static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008245 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008249 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308251 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008253 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308255 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008257 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8258 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308259 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008261 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8262 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308263 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008265 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8266 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308267 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008269 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8270 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308271 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008273 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8274 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308275 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008277 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8278 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308279 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008281 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8282 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308283 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008285 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8286 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308287 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008289 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8290 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308291 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008293 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8294 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308295 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008297 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8298 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308299 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008301 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8302 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308303 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008305 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8306 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308307 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8308 msm_routing_put_audio_mixer),
8309};
8310
8311static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008312 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008320 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308322 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008324 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308326 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008328 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308330 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008332 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8333 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308334 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008336 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8337 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308338 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008340 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8341 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308342 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008344 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308346 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008348 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308350 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008352 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308354 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008356 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308358 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008360 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8361 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308362 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008364 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8365 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308366 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008368 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8369 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308370 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008372 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8373 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308374 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8375 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008376 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8377 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8378 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8379 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308380};
8381
8382static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008383 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008387 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008391 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308393 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008395 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308397 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008399 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308401 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008403 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8404 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308405 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008407 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8408 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308409 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008411 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8412 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308413 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008415 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8416 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308417 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008419 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8420 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308421 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008423 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8424 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308425 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008427 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8428 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308429 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008431 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8432 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308433 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008435 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8436 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308437 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008439 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8440 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308441 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008443 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8444 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308445 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8446 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008447 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8448 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8449 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8450 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308451};
8452
8453static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008462 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308464 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008470 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8471 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308472 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008474 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8475 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308476 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008478 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8479 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308480 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008482 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8483 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308484 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008486 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8487 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308488 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008490 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8491 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308492 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008494 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8495 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308496 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008498 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8499 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308500 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008502 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8503 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308504 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008506 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8507 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308508 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008510 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8511 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308512 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008514 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8515 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308516 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8517 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008518 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8519 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8520 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8521 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308522};
8523
8524static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008533 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308535 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008537 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308539 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008541 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308543 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008545 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8546 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308547 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008549 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8550 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308551 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008553 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8554 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308555 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008557 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8558 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308559 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008561 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8562 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308563 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008565 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8566 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308567 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008569 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8570 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308571 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008573 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8574 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308575 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008577 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8578 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308579 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008581 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8582 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308583 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008585 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8586 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308587 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8588 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008589 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8590 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8591 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8592 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308593};
8594
8595static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008596 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008600 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008604 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008616 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308618 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008620 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8621 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308622 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008624 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8625 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008628 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8629 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308630 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008632 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8633 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308634 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008636 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8637 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308638 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008640 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8641 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308642 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008644 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8645 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308646 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008648 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8649 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308650 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008652 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8653 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308654 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008656 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8657 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308658 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008660 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8661 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308662 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8663 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008664 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8665 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8666 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8667 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308668};
8669
8670static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008671 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008679 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008691 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308693 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008695 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8696 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308697 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008699 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8700 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308701 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008703 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8704 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308705 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008707 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8708 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308709 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008711 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8712 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308713 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008715 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8716 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308717 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008719 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8720 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308721 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008723 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8724 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308725 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008727 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8728 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308729 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008731 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8732 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308733 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8734 msm_routing_put_audio_mixer),
8735};
8736
8737static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008766 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308768 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008770 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8771 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308772 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008774 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8775 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308776 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008778 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8779 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308780 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008782 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8783 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308784 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008786 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8787 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308788 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008790 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8791 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308792 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008794 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8795 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308796 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008798 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8799 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308800 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008802 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8803 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308804 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8805 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008806 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8807 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8808 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8809 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308810};
8811
8812static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008837 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8838 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308839 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008841 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8842 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308843 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008845 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8846 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308847 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008849 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8850 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308851 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008853 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8854 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308855 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008857 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8858 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308859 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008861 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8862 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308863 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008865 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8866 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308867 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008869 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8870 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308871 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008873 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8874 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308875 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008877 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8878 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308879 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8880 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008881 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8882 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8883 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8884 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885};
8886
8887static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008888 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008908 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308910 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008912 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8913 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308914 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008916 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8917 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308918 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008920 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8921 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308922 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008924 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8925 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308926 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008928 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8929 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308930 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008932 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8933 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308934 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008936 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8937 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308938 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008940 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8941 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308942 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008944 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8945 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308946 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008948 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8949 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308950 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008952 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8953 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308954 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8955 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008956 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8957 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8958 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8959 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308960};
8961
Rohit Kumara5077932017-09-10 22:05:05 +05308962static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008963 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008967 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008971 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008975 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008979 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008983 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308985 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008987 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8988 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308989 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008991 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8992 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308993 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008995 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8996 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308997 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008999 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9000 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309001 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009003 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9004 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309005 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009007 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9008 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309009 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009011 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9012 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309013 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009015 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9016 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309017 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009019 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9020 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309021 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009023 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9024 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309025 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009027 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9028 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309029 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9030 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009031 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9032 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9033 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9034 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309035};
9036
9037static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009058 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309060 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009062 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9063 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309064 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009066 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9067 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309068 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009070 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9071 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309072 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009074 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9075 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309076 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009078 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9079 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309080 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009082 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9083 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309084 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009086 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9087 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309088 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009090 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9091 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309092 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009094 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9095 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309096 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009098 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9099 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309100 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9101 msm_routing_put_audio_mixer),
9102};
9103
9104static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009169 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309171 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009173 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9174 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9175 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9176 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309177};
9178
9179static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009196 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009200 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009204 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009208 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009212 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309214 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009216 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309218 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009220 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309222 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009224 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009228 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309230 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009232 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309234 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009236 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309238 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009240 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9241 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309242 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009244 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9245 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309246 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9247 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009248 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9249 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9250 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9251 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309252};
9253
9254static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009283 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009291 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009295 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009299 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309301 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009303 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009307 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309309 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009311 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9312 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309313 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009315 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9316 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309317 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009319 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9320 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309321 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9322 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009323 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9324 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9325 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9326 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309327};
9328
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309329static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009378 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009382 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009386 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009390 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009394 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009398 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009402 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309404 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009406 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009410 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309412 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009414 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9415 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309416 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009418 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309420 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009422 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309424 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009426 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309428 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009430 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9431 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309432 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009434 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9435 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309436 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009438 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9439 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309440 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009442 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9443 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309444 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009446 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9447 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309448 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009450 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9451 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309452 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009454 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9455 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309456 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009458 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9459 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309460 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009462 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9463 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309464 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009466 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9467 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309468 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009470 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9471 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309472 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009474 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9475 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309476 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009478 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9479 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309480 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009482 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9483 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309484 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009486 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9487 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309488 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009490 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9491 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309492 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009494 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9495 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309496 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009498 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9499 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309500 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009502 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9503 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("USB_AUDIO_TX", SND_SOC_NOPM,
9507 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309508 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9509 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309510 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9511 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9512 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9513 msm_routing_put_audio_mixer),
9514 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9515 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9516 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9517 msm_routing_put_audio_mixer),
9518 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9519 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9520 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9521 msm_routing_put_audio_mixer),
9522 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9523 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9524 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9525 msm_routing_put_audio_mixer),
9526 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9527 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9528 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9529 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309530 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9531 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9532 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9533 msm_routing_put_audio_mixer),
9534 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9535 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9536 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9537 msm_routing_put_audio_mixer),
9538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9540 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9541 msm_routing_put_audio_mixer),
9542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9544 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9545 msm_routing_put_audio_mixer),
9546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9548 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9549 msm_routing_put_audio_mixer),
9550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9552 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9553 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009554 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9555 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9556 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9557 msm_routing_put_audio_mixer),
9558 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9559 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9560 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309562 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9563 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9564 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9565 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309566};
9567
9568static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009569 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9570 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309571 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009573 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9574 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309575 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009577 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309579 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009581 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309583 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009585 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9586 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309587 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009589 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9590 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309591 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009593 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9594 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309595 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009597 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9598 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309599 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009601 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9602 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309603 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009605 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9606 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309607 MSM_FRONTEND_DAI_MULTIMEDIA2, 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_1_TX", SND_SOC_NOPM,
9610 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309611 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009613 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9614 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309615 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009617 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9618 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309619 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009621 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009625 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009629 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009633 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009637 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009641 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009645 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009649 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009653 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009657 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009661 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009665 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009669 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009673 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309705 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9707 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
9709 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9711 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
9713 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9715 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
9717 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9719 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
9721 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9723 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309725 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9727 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
9729 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9731 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
9733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9735 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
9737 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9739 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
9741 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9743 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
9745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9747 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009749 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9751 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
9753 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9755 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309757 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9759 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309761};
9762
9763static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009764 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309766 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009768 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009772 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309774 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009776 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309778 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009780 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009784 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309786 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009788 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309790 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009792 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309794 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009796 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009800 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309802 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009804 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309806 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009808 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309810 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009812 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309814 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009820 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309822 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009824 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309826 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009828 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309830 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009832 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309834 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009836 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9837 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309838 MSM_FRONTEND_DAI_MULTIMEDIA3, 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_TDM_TX_1", SND_SOC_NOPM,
9841 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309842 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009844 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9845 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309846 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009848 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9849 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309850 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009852 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9853 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309854 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009856 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9857 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309858 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009860 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9861 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309862 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009864 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9865 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009868 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9869 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309870 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009872 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9873 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309874 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009876 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9877 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309878 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009880 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9881 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309882 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009884 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9885 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309886 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009888 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9889 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309890 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009892 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9893 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309894 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009896 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9897 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309898 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9899 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309900 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9901 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9902 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9903 msm_routing_put_audio_mixer),
9904 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9905 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9906 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9907 msm_routing_put_audio_mixer),
9908 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9909 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9910 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9911 msm_routing_put_audio_mixer),
9912 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9913 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9914 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9915 msm_routing_put_audio_mixer),
9916 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9917 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9918 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9919 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309920 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9921 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9922 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9923 msm_routing_put_audio_mixer),
9924 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9925 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9926 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9927 msm_routing_put_audio_mixer),
9928 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9929 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9930 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9931 msm_routing_put_audio_mixer),
9932 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9933 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9934 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9935 msm_routing_put_audio_mixer),
9936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9938 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9939 msm_routing_put_audio_mixer),
9940 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9941 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9942 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9943 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009944 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9946 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9947 msm_routing_put_audio_mixer),
9948 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9949 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9950 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9951 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309952};
9953
9954static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009955 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9956 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309957 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009959 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9960 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309961 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009963 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9964 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309965 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009967 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9968 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309969 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009971 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9972 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309973 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009975 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9976 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309977 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009979 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9980 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309981 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009983 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9984 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309985 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009987 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9988 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309989 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009991 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9992 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309993 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009995 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9996 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309997 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009999 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10000 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010001 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010003 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10004 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010005 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010007 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10008 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010009 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010011 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10012 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010013 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010015 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10016 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010017 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010019 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10020 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010021 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010023 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10024 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010025 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010027 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10028 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010029 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010031 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10032 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010033 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010035 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10036 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010037 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010039 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10040 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010041 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010043 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10044 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010045 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010047 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10048 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010049 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010051 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10052 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010053 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010055 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10056 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010057 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010059 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10060 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010063 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10064 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010065 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010067 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10068 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010069 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010071 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010073 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010075 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010077 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010079 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010081 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010083 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10084 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010085 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10086 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010087 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10088 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10089 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10090 msm_routing_put_audio_mixer),
10091 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10092 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10093 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10094 msm_routing_put_audio_mixer),
10095 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10097 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10098 msm_routing_put_audio_mixer),
10099 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10101 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10102 msm_routing_put_audio_mixer),
10103 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10105 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10106 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010107 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10109 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10110 msm_routing_put_audio_mixer),
10111 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10113 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10114 msm_routing_put_audio_mixer),
10115 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10117 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
10119 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10120 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10121 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10122 msm_routing_put_audio_mixer),
10123 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10125 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10126 msm_routing_put_audio_mixer),
10127 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10129 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010131 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10133 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10134 msm_routing_put_audio_mixer),
10135 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10137 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010139};
10140
10141static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010142 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10143 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010144 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010146 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10147 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010148 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010150 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10151 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010152 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010154 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10155 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010156 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010158 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10159 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010160 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010162 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10163 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010164 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010166 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10167 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010168 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010170 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010172 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010174 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010176 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010178 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010182 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10183 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010184 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010186 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010188 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010190 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010192 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010194 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10195 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010196 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010198 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10199 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010200 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010202 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10203 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010204 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010206 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10207 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010208 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010210 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10211 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010212 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010214 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10215 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010216 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010218 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10219 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010220 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010222 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10223 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010224 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010226 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010228 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010230 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010232 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010234 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010236 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010238 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010240 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010242 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010244 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010246 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010248 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010250 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010252 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010254 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010256 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010258 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010260 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010262 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10263 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010264 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010266 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10267 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010268 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010270 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10271 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010272 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010274 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10275 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010276 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010278 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010280 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010282 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010284 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010286 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010288 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010290 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10291 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010292 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010294 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10295 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010296 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10297 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010298 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10299 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10300 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10301 msm_routing_put_audio_mixer),
10302 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10303 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10304 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10305 msm_routing_put_audio_mixer),
10306 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10307 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10308 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10309 msm_routing_put_audio_mixer),
10310 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10311 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10312 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10313 msm_routing_put_audio_mixer),
10314 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10315 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10316 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10317 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010318 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10319 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10320 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10321 msm_routing_put_audio_mixer),
10322 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10323 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10324 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10325 msm_routing_put_audio_mixer),
10326 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10327 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10328 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10329 msm_routing_put_audio_mixer),
10330 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10331 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10332 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10333 msm_routing_put_audio_mixer),
10334 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10335 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10336 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10337 msm_routing_put_audio_mixer),
10338 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10339 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10340 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10341 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010342 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10343 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10344 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10345 msm_routing_put_audio_mixer),
10346 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10347 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10348 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10349 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010350 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10351 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10352 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10353 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010354};
10355
10356static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010357 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10358 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010359 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010361 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10362 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010363 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010365 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10366 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010367 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010369 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10370 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010371 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010373 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10374 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010375 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010377 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10378 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010379 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010381 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010383 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010385 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010387 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010389 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10390 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010393 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10394 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010395 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010397 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10398 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010399 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010401 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10402 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010403 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010405 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10406 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010407 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010409 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10410 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010411 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010413 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10414 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010415 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010417 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10418 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010419 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010421 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10422 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010423 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010425 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10426 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010427 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010429 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10430 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010431 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010433 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10434 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010435 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010437 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10438 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010439 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010441 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10442 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010443 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010445 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10446 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010447 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010449 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10450 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010451 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010453 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10454 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010455 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010457 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10458 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010459 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010461 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10462 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010463 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010465 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10466 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010467 MSM_FRONTEND_DAI_MULTIMEDIA6, 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_TDM_TX_3", SND_SOC_NOPM,
10470 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010471 MSM_FRONTEND_DAI_MULTIMEDIA6, 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_TDM_TX_0", SND_SOC_NOPM,
10474 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010475 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010477 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10478 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010479 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010481 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10482 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010483 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010485 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10486 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010487 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010489 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10490 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010491 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10492 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010493 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10494 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10495 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10496 msm_routing_put_audio_mixer),
10497 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10498 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10499 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10500 msm_routing_put_audio_mixer),
10501 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10502 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10503 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10504 msm_routing_put_audio_mixer),
10505 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10506 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10507 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10508 msm_routing_put_audio_mixer),
10509 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10510 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10511 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10512 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010513 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10514 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10515 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10516 msm_routing_put_audio_mixer),
10517 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10518 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10519 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10520 msm_routing_put_audio_mixer),
10521 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10522 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10523 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10524 msm_routing_put_audio_mixer),
10525 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10526 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10527 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10528 msm_routing_put_audio_mixer),
10529 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10530 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10531 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10532 msm_routing_put_audio_mixer),
10533 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10534 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10535 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10536 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010537 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10538 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10539 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10540 msm_routing_put_audio_mixer),
10541 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10543 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010545};
10546
10547static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010548 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10549 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010550 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010552 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10553 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010554 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010556 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10557 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010558 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010560 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10561 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010562 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010564 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10565 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010566 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010568 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10569 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010570 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010572 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10573 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010574 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010576 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010578 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010580 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010582 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010584 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010586 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010588 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010590 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010592 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010594 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010596 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010598 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010600 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010602 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010604 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010606 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010608 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010610 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010612 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010614 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010616 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010618 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010620 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010622 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010624 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010628 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010630 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010632 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010636 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010638 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010640 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010642 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010644 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010646 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010648 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10649 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010650 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010652 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10653 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010654 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010656 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010658 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010660 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010662 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010664 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010666 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010668 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10669 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010670 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010672 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10673 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010674 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010676 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10677 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010678 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010680 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10681 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010682 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010684 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10685 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010686 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10687 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010688 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10689 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10690 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10691 msm_routing_put_audio_mixer),
10692 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10693 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10694 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10695 msm_routing_put_audio_mixer),
10696 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10697 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10698 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10699 msm_routing_put_audio_mixer),
10700 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10702 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
10704 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10706 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010708 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10710 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
10712 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10714 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
10716 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10718 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
10720 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10722 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
10724 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10726 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
10728 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10730 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010732 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10734 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
10736 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10738 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010740 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10742 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010744};
10745
Asish Bhattacharya34504582017-08-08 12:55:01 +053010746static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010747 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010749 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010751 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010753 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010755 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10756 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010757 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010759 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010761 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010763 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010765 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010767 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010769 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010771 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010773 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010775 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010777 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010779 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010781 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010783 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010785 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010787 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010789 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010791 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010793 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010795 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010797 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010799 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010801 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010803 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010805 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010807 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010809 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010811 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10812 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010813 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010815 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010817 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010819 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010821 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010823 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010825 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010827 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010829 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010831 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010835 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010837 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010839 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10840 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010841 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010843 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10844 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010845 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010847 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10848 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010849 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010851 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10852 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010853 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010855 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10856 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010857 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010859 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10860 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010861 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010863 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10864 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010865 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010867 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10868 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010869 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010871 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10872 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010873 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010875 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10876 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010877 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010879 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10880 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010881 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010883 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10884 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010885 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10886 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010887 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10888 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10890 msm_routing_put_audio_mixer),
10891 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10892 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10893 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10894 msm_routing_put_audio_mixer),
10895 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10896 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10897 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10898 msm_routing_put_audio_mixer),
10899 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10900 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10901 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10902 msm_routing_put_audio_mixer),
10903 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10904 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10905 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10906 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010907 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10909 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10910 msm_routing_get_audio_mixer,
10911 msm_routing_put_audio_mixer),
10912 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10913 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10914 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10915 msm_routing_get_audio_mixer,
10916 msm_routing_put_audio_mixer),
10917 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10919 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10920 msm_routing_get_audio_mixer,
10921 msm_routing_put_audio_mixer),
10922 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10924 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10925 msm_routing_get_audio_mixer,
10926 msm_routing_put_audio_mixer),
10927 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10929 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10930 msm_routing_get_audio_mixer,
10931 msm_routing_put_audio_mixer),
10932 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10933 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10934 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10935 msm_routing_get_audio_mixer,
10936 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010937 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10938 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10939 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
10941 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10943 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10944 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010945 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10946 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10947 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10948 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010949};
10950
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010951static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010952 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10953 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010954 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010956 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10957 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010958 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010960 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10961 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010962 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010964 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10965 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010966 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010968 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10969 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010970 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010972 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10973 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010974 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010976 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10977 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010978 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010980 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10981 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010982 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010984 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10985 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010986 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010988 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10989 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010990 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010992 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10993 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010994 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010996 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10997 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010998 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011000 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11001 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011002 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011004 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11005 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011006 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011008 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11009 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011010 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011012 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11013 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011016 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11017 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011018 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011020 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11021 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011022 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011024 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11025 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011026 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011028 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11029 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011030 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11031 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011032 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11033 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11034 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
11036 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11038 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11039 msm_routing_put_audio_mixer),
11040 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11041 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11042 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11043 msm_routing_put_audio_mixer),
11044 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11045 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11046 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11047 msm_routing_put_audio_mixer),
11048 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11049 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11050 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11051 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011052 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11053 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11054 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
11056 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11058 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
11060 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11062 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
11064 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11065 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11066 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11067 msm_routing_put_audio_mixer),
11068 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11069 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11070 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11071 msm_routing_put_audio_mixer),
11072 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11073 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11074 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11075 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011076 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11077 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11078 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11079 msm_routing_put_audio_mixer),
11080 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11081 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11082 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11083 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011084};
11085
Laxminath Kasam38070be2017-08-17 18:21:59 +053011086static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011087 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011089 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011091 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011093 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011095 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011097 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011099 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011101 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011103 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011107 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011109 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011111 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011113 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011115 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011117 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011119 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011121 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011123 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011125 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011127 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011129 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011131 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011133 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011135 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011137 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011139 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011141 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011143 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011145 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011147 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011149 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011151 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011153 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011155 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011157 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011159 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011161 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011163 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11164 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011165 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011167 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11168 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011169 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011171 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11172 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011173 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011175 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11176 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011177 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011179 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11180 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011181 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011183 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11184 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011185 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011187 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11188 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011189 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11190 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011191 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11192 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11193 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11194 msm_routing_put_audio_mixer),
11195 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11196 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11197 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11198 msm_routing_put_audio_mixer),
11199 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11200 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11201 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11202 msm_routing_put_audio_mixer),
11203 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11204 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11205 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11206 msm_routing_put_audio_mixer),
11207 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11208 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11209 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11210 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011211 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11212 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11213 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11214 msm_routing_get_audio_mixer,
11215 msm_routing_put_audio_mixer),
11216 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11218 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11219 msm_routing_get_audio_mixer,
11220 msm_routing_put_audio_mixer),
11221 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11222 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11223 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11224 msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
11226 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11228 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11229 msm_routing_get_audio_mixer,
11230 msm_routing_put_audio_mixer),
11231 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11232 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11233 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11234 msm_routing_get_audio_mixer,
11235 msm_routing_put_audio_mixer),
11236 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11237 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11238 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11239 msm_routing_get_audio_mixer,
11240 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011241 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11242 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11243 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11244 msm_routing_put_audio_mixer),
11245 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11246 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11247 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11248 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011249 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11250 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11251 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11252 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011253};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011254static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011255 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11256 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011257 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011259 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11260 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011261 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011263 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11264 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011265 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011267 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11268 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011269 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011271 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11272 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011273 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011275 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11276 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011277 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011279 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11280 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011281 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011283 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11284 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011285 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11286 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011287 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11288 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11289 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11290 msm_routing_put_audio_mixer),
11291 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11293 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11294 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011295 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11297 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11298 msm_routing_put_audio_mixer),
11299 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11301 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
11303 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11305 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
11307 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11309 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
11311 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11313 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11314 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011315 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11316 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11317 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11318 msm_routing_get_audio_mixer,
11319 msm_routing_put_audio_mixer),
11320 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11321 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11322 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11323 msm_routing_get_audio_mixer,
11324 msm_routing_put_audio_mixer),
11325 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11326 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11327 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11328 msm_routing_get_audio_mixer,
11329 msm_routing_put_audio_mixer),
11330 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11331 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11332 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11333 msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
11335 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11337 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11338 msm_routing_get_audio_mixer,
11339 msm_routing_put_audio_mixer),
11340 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11341 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11342 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11343 msm_routing_get_audio_mixer,
11344 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011345 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11346 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11347 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11348 msm_routing_put_audio_mixer),
11349 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11351 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11352 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011353};
11354
11355static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011356 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11357 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011358 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011360 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11361 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011362 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011364 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11365 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011366 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11367 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011368 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11369 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11370 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11371 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011372 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11373 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11374 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011376 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011378 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011380 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11381 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011382 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011384 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011386 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011388 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011390 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011392 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11393 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011394 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011396 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11397 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011398 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11399 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011400 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11401 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11402 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11403 msm_routing_put_audio_mixer),
11404 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11405 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11406 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
11408 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11410 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11411 msm_routing_put_audio_mixer),
11412 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11413 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11414 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11415 msm_routing_put_audio_mixer),
11416 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11417 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11418 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11419 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011420 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11421 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11422 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11423 msm_routing_get_audio_mixer,
11424 msm_routing_put_audio_mixer),
11425 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11426 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11427 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11428 msm_routing_get_audio_mixer,
11429 msm_routing_put_audio_mixer),
11430 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11431 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11432 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11433 msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
11435 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11437 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11438 msm_routing_get_audio_mixer,
11439 msm_routing_put_audio_mixer),
11440 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11442 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11443 msm_routing_get_audio_mixer,
11444 msm_routing_put_audio_mixer),
11445 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11446 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11447 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11448 msm_routing_get_audio_mixer,
11449 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011450 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11451 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11452 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11453 msm_routing_put_audio_mixer),
11454 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11455 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11456 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11457 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011458};
11459
11460static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011461 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11462 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011463 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011465 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011467 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011469 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11470 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011471 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011473 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011475 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011477 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11478 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011479 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011481 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11482 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011483 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011485 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011487 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011489 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011491 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11492 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011493 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11495 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11496 msm_routing_put_audio_mixer),
11497 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11498 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11499 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11500 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011501 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11502 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11503 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11504 msm_routing_put_audio_mixer),
11505 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11506 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11507 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11508 msm_routing_put_audio_mixer),
11509 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11511 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11512 msm_routing_put_audio_mixer),
11513 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11514 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11515 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11516 msm_routing_put_audio_mixer),
11517 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11519 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11520 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011521 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11522 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11523 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11524 msm_routing_get_audio_mixer,
11525 msm_routing_put_audio_mixer),
11526 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11527 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11528 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11529 msm_routing_get_audio_mixer,
11530 msm_routing_put_audio_mixer),
11531 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11532 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11533 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11534 msm_routing_get_audio_mixer,
11535 msm_routing_put_audio_mixer),
11536 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11537 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11538 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11539 msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
11541 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11543 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11544 msm_routing_get_audio_mixer,
11545 msm_routing_put_audio_mixer),
11546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11548 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11549 msm_routing_get_audio_mixer,
11550 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011551 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11552 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11553 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11554 msm_routing_put_audio_mixer),
11555 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11556 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11557 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11558 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011559};
11560
11561static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011562 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011564 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011566 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11567 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011568 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011570 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11571 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011572 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011574 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11575 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011576 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011578 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11579 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011580 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011582 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11583 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011584 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011586 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11587 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011588 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011590 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011592 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011594 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11595 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011596 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011598 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11599 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011600 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011602 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11603 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011604 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011606 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11607 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011608 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011610 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011612 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011614 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11615 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011616 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011618 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11619 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011620 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011622 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11623 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011624 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011626 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011628 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011630 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011632 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011634 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011636 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011638 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011640 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011644 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011648 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011652 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011654 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011656 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011658 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011660 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +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_MULTIMEDIA20, 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_MULTIMEDIA20, 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_MULTIMEDIA20, 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_MULTIMEDIA20, 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_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
11682 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11684 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
11686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11688 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
11690 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11692 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
11694 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11696 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
11698 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11700 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
11702 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11704 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11708 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
11710 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11712 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011714};
11715
11716static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11717 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11718 MSM_BACKEND_DAI_AUXPCM_TX,
11719 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11720 msm_routing_put_audio_mixer),
11721 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11722 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11723 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11724 msm_routing_put_audio_mixer),
11725 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11726 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11727 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11728 msm_routing_put_audio_mixer),
11729 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11730 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11731 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11732 msm_routing_put_audio_mixer),
11733 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11735 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11736 msm_routing_put_audio_mixer),
11737 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11739 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11740 msm_routing_put_audio_mixer),
11741 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11743 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11744 msm_routing_put_audio_mixer),
11745 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11747 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11748 msm_routing_put_audio_mixer),
11749 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11750 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11751 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11752 msm_routing_put_audio_mixer),
11753 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11754 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11755 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11756 msm_routing_put_audio_mixer),
11757 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11758 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11759 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11760 msm_routing_put_audio_mixer),
11761 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11762 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11763 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11764 msm_routing_put_audio_mixer),
11765 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11767 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11768 msm_routing_put_audio_mixer),
11769 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11771 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11772 msm_routing_put_audio_mixer),
11773 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11775 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11776 msm_routing_put_audio_mixer),
11777 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11779 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
11781 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11783 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11784 msm_routing_put_audio_mixer),
11785 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11786 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11787 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11788 msm_routing_put_audio_mixer),
11789 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11790 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11791 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11792 msm_routing_put_audio_mixer),
11793 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11794 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11795 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11796 msm_routing_put_audio_mixer),
11797 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11798 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11799 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11800 msm_routing_put_audio_mixer),
11801 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11803 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11804 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011805 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011806 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11807 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011808 msm_routing_put_audio_mixer),
11809 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011810 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11811 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011812 msm_routing_put_audio_mixer),
11813 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011814 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11815 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011816 msm_routing_put_audio_mixer),
11817 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011818 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11819 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011820 msm_routing_put_audio_mixer),
11821 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011822 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11823 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011824 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011825 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011826 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11827 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011829 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11831 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011833 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011834 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11835 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011837 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011838 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11839 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11840 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011841 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011842 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11843 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011845 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011846 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11847 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011849 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011851 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011852 msm_routing_put_audio_mixer),
11853 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011855 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011856 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011857};
11858
Surendar Karkac1cde372018-08-14 18:56:24 +053011859static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
11860 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11861 MSM_BACKEND_DAI_SLIMBUS_0_TX,
11862 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11863 msm_routing_put_audio_mixer),
11864 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11865 MSM_BACKEND_DAI_SLIMBUS_6_TX,
11866 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11867 msm_routing_put_audio_mixer),
11868 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11869 MSM_BACKEND_DAI_SLIMBUS_7_TX,
11870 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11871 msm_routing_put_audio_mixer),
11872 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11873 MSM_BACKEND_DAI_PRI_MI2S_TX,
11874 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11875 msm_routing_put_audio_mixer),
11876 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11877 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11878 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11879 msm_routing_put_audio_mixer),
11880 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11882 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11883 msm_routing_put_audio_mixer),
11884 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11886 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11887 msm_routing_put_audio_mixer),
11888 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
11890 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11891 msm_routing_put_audio_mixer),
11892 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11894 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
11896 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11898 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011900 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11902 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053011904};
11905
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011906static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011907 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011909 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011911 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011913 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011915 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011917 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011919 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011921 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011923 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11924 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011925 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011927 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11928 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011929 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011931 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11932 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011933 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011935 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11936 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011937 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11938 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011939 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11940 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11941 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11942 msm_routing_put_audio_mixer),
11943 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11944 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11945 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11946 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011947 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11948 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11949 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11950 msm_routing_put_audio_mixer),
11951 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11953 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11954 msm_routing_put_audio_mixer),
11955 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11956 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11957 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11958 msm_routing_put_audio_mixer),
11959 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11960 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11961 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11962 msm_routing_put_audio_mixer),
11963 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11964 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11965 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11966 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011967 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11968 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11969 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11970 msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
11972 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11974 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11975 msm_routing_get_audio_mixer,
11976 msm_routing_put_audio_mixer),
11977 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11978 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11979 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11980 msm_routing_get_audio_mixer,
11981 msm_routing_put_audio_mixer),
11982 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11983 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11984 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11985 msm_routing_get_audio_mixer,
11986 msm_routing_put_audio_mixer),
11987 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11988 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11989 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11990 msm_routing_get_audio_mixer,
11991 msm_routing_put_audio_mixer),
11992 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11993 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11994 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11995 msm_routing_get_audio_mixer,
11996 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011997 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11998 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11999 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12000 msm_routing_put_audio_mixer),
12001 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12002 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12003 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12004 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012005};
12006
12007static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012008 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12009 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012010 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012012 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12013 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012014 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012016 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12017 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012018 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012020 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12021 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012022 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012024 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12025 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012026 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012028 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12029 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012030 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012032 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12033 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012034 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012036 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12037 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012038 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12039 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012040 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12041 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12042 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12043 msm_routing_put_audio_mixer),
12044 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12045 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12046 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12047 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012048 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12049 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12050 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12051 msm_routing_put_audio_mixer),
12052 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12053 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12054 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12055 msm_routing_put_audio_mixer),
12056 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12057 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12058 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12059 msm_routing_put_audio_mixer),
12060 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12061 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12062 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12063 msm_routing_put_audio_mixer),
12064 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12066 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12067 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012068 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12069 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12070 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12071 msm_routing_get_audio_mixer,
12072 msm_routing_put_audio_mixer),
12073 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12074 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12075 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12076 msm_routing_get_audio_mixer,
12077 msm_routing_put_audio_mixer),
12078 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12079 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12080 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12081 msm_routing_get_audio_mixer,
12082 msm_routing_put_audio_mixer),
12083 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12084 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12085 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12086 msm_routing_get_audio_mixer,
12087 msm_routing_put_audio_mixer),
12088 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12089 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12090 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12091 msm_routing_get_audio_mixer,
12092 msm_routing_put_audio_mixer),
12093 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12095 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12096 msm_routing_get_audio_mixer,
12097 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012098 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12100 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12101 msm_routing_put_audio_mixer),
12102 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12104 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12105 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012106};
12107
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012108static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012109 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12110 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012111 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12112 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012113 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12114 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012115 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12116 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012117 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12118 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012119 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12120 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012121 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12122 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012123 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12124 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012125 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12126 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012127 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12128 msm_routing_put_voice_mixer),
12129};
12130
12131static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012132 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012134 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12135 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012136 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12137 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012138 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12139 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012140 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12141 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012142 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12143 msm_routing_put_voice_mixer),
12144};
12145
12146static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012147 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12148 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012149 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12150 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012151 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12152 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012153 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12154 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012155 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12156 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012157 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12158 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012159 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12160 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012161 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12162 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012163 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12164 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012165 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12166 msm_routing_put_voice_mixer),
12167};
12168
12169static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012170 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012172 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12173 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012174 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12175 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012176 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12177 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012178 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012180 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12181 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012182 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12183 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012184 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12185 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012186 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12187 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012188 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12189 msm_routing_put_voice_mixer),
12190};
12191
12192static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012193 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12194MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012195 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12196 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012197 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12198MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012199 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12200 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012201 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12202MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012203 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12204 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012205 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12206MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012207 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12208 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012209 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12210MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012211 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12212 msm_routing_put_voice_mixer),
12213};
12214
12215static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012216 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12217 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012218 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12219 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012220 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12221 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012222 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12223 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012224 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12225 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012226 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12227 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012228 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12229 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012230 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12231 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012232 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12233 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012234 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12235 msm_routing_put_voice_mixer),
12236};
12237
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012238static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012239 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12240MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012241 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12242 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012243 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12244MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012245 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12246 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012247 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12248MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012249 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12250 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012251 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12252MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012253 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12254 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012255 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12256MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012257 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12258 msm_routing_put_voice_mixer),
12259};
12260
Karthikeyan Mani57550082018-05-03 18:43:58 -070012261static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12262 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12263 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12264 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12265 msm_routing_put_voice_mixer),
12266 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12267 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12268 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12269 msm_routing_put_voice_mixer),
12270 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12271 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12272 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12273 msm_routing_put_voice_mixer),
12274 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12275 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12276 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12277 msm_routing_put_voice_mixer),
12278 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12279 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12280 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12281 msm_routing_put_voice_mixer),
12282};
12283
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012284static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012285 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12286 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012287 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12288 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012289 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12290 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012291 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12292 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012293 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12294 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012295 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12296 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012297 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12298 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012299 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12300 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012301 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012303 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12304 msm_routing_put_voice_mixer),
12305};
12306
12307static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012308 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012310 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12311 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012312 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12313 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012314 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12315 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012316 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12317 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012318 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12319 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012320 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12321 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012322 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12323 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012324 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12325 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012326 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12327 msm_routing_put_voice_mixer),
12328};
12329
12330static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012331 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12332MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012333 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12334 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012335 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12336MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012337 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12338 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012339 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12340MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012341 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12342 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012343 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12344MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012345 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12346 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012347 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12348MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012349 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12350 msm_routing_put_voice_mixer),
12351};
12352
12353static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012354 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12355MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012356 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12357 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012358 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12359MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012360 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12361 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012362 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12363MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012364 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12365 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012366 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12367MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012368 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12369 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012370 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12371MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012372 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12373 msm_routing_put_voice_mixer),
12374};
12375
12376static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012377 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012379 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12380 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012381 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012383 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12384 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012385 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12386 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012387 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12388 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012389 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12390 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012391 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12392 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012393 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012395 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12396 msm_routing_put_voice_mixer),
12397};
12398
12399static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012400 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12401 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012402 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12403 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012404 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12405 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012406 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12407 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012408 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12409 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012410 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12411 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012412 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12413 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012414 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12415 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012416 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012418 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12419 msm_routing_put_voice_mixer),
12420};
12421
12422static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012423 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12424 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012425 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12426 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012427 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12428 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012429 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12430 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012431 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12432 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012433 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12434 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012435 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12436 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012437 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12438 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012439 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12440 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012441 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12442 msm_routing_put_voice_mixer),
12443};
12444
12445static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012446 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12447 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012448 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12449 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012450 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12451 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012452 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12453 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012454 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12455 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012456 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12457 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012458 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12459 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012460 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12461 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012462 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012464 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12465 msm_routing_put_voice_mixer),
12466};
12467
12468static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012469 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12470 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012471 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12472 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012473 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12474 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012475 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12476 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012477 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12478 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012479 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12480 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012481 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12482 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012483 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12484 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012485 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12486 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012487 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12488 msm_routing_put_voice_mixer),
12489};
12490
12491static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012492 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12493 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012494 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12495 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012496 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12497 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012498 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12499 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012500 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12501 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012502 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12503 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012504 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012506 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12507 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012508 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012510 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12511 msm_routing_put_voice_mixer),
12512};
12513
12514static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012515 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12516MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012517 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12518 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012519 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12520MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012521 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12522 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012523 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12524MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012525 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12526 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012527 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12528MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012529 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12530 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012531 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12532MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012533 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12534 msm_routing_put_voice_mixer),
12535};
12536
12537static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012538 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12539MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012540 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12541 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012542 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12543MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012544 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12545 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012546 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12547MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012548 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12549 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012550 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12551MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012552 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12553 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012554 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12555MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012556 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12557 msm_routing_put_voice_mixer),
12558};
12559
12560static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012561 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12562MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012563 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12564 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012565 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12566MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012567 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12568 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012569 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12570MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012571 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12572 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012573 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12574MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012575 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12576 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012577 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12578MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12580 msm_routing_put_voice_mixer),
12581};
12582
Rohit Kumara5077932017-09-10 22:05:05 +053012583static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12585MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012586 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12587 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012588 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12589MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012590 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12591 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012592 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12593MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012594 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12595 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012596 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12597MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012598 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12599 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012600 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12601MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012602 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12603 msm_routing_put_voice_mixer),
12604};
12605
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012607 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12608 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12610 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012611 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12612 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012613 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12614 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012615 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12616 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012617 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12618 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012619 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12620 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012621 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12622 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012623 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12624 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012625 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12626 msm_routing_put_voice_mixer),
12627};
12628
12629static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012630 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12631MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012632 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12633 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012634 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12635MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012636 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12637 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012638 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12639MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012640 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12641 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012642 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12643MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012644 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12645 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012646 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12647MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012648 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12649 msm_routing_put_voice_mixer),
12650};
12651
12652static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012653 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12654 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012655 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12656 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012657 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12658 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012659 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12660 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012661 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12662 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012663 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12664 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012665 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12666 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012667 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12668 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012669 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12670 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012671 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12672 msm_routing_put_voice_mixer),
12673};
12674
12675static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012676 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12677 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012678 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12679 msm_routing_put_voice_mixer),
12680};
12681
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012682static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12683 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12685 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12686 msm_routing_put_voice_mixer),
12687 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12689 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12690 msm_routing_put_voice_mixer),
12691 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12692 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12693 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12694 msm_routing_put_voice_mixer),
12695 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12697 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12698 msm_routing_put_voice_mixer),
12699 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12700 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12701 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12702 msm_routing_put_voice_mixer),
12703};
12704
12705static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12706 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12707 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12708 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12709 msm_routing_put_voice_mixer),
12710 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12711 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12712 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12713 msm_routing_put_voice_mixer),
12714 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12715 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12716 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12717 msm_routing_put_voice_mixer),
12718 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12719 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12720 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12721 msm_routing_put_voice_mixer),
12722 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12723 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12724 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12725 msm_routing_put_voice_mixer),
12726};
12727
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012728static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12729 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12730 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12731 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12732 msm_routing_put_voice_mixer),
12733 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12734 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12735 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12736 msm_routing_put_voice_mixer),
12737 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12738 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12739 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12740 msm_routing_put_voice_mixer),
12741 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12742 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12743 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12744 msm_routing_put_voice_mixer),
12745 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12746 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12747 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12748 msm_routing_put_voice_mixer),
12749};
12750
12751static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12752 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12753 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12754 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12755 msm_routing_put_voice_mixer),
12756 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12757 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12758 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12759 msm_routing_put_voice_mixer),
12760 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12761 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12762 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12763 msm_routing_put_voice_mixer),
12764 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12765 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12766 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12767 msm_routing_put_voice_mixer),
12768 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12769 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12770 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12771 msm_routing_put_voice_mixer),
12772};
12773
12774static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12775 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12777 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12778 msm_routing_put_voice_mixer),
12779 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12780 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12781 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12782 msm_routing_put_voice_mixer),
12783 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12784 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12785 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12786 msm_routing_put_voice_mixer),
12787 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12788 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12789 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12790 msm_routing_put_voice_mixer),
12791 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12792 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12793 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12794 msm_routing_put_voice_mixer),
12795};
12796
12797static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12798 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12800 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12801 msm_routing_put_voice_mixer),
12802 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12803 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12804 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12805 msm_routing_put_voice_mixer),
12806 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12807 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12808 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12809 msm_routing_put_voice_mixer),
12810 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12811 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12812 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12813 msm_routing_put_voice_mixer),
12814 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12815 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12816 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12817 msm_routing_put_voice_mixer),
12818};
12819
12820static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12821 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12823 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12824 msm_routing_put_voice_mixer),
12825 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12826 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12827 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12828 msm_routing_put_voice_mixer),
12829 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12831 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12832 msm_routing_put_voice_mixer),
12833 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12835 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12836 msm_routing_put_voice_mixer),
12837 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12839 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12840 msm_routing_put_voice_mixer),
12841};
12842
12843static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12844 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12845 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12846 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12847 msm_routing_put_voice_mixer),
12848 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12849 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12850 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12851 msm_routing_put_voice_mixer),
12852 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12853 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12854 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12855 msm_routing_put_voice_mixer),
12856 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12857 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12858 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12859 msm_routing_put_voice_mixer),
12860 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12861 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12862 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12863 msm_routing_put_voice_mixer),
12864};
12865
12866static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12867 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12868 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12869 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12870 msm_routing_put_voice_mixer),
12871 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12872 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12873 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12874 msm_routing_put_voice_mixer),
12875 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12876 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12877 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12878 msm_routing_put_voice_mixer),
12879 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12880 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12881 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12882 msm_routing_put_voice_mixer),
12883 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12884 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12885 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12886 msm_routing_put_voice_mixer),
12887};
12888
12889static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12890 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12891 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12892 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12893 msm_routing_put_voice_mixer),
12894 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12895 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12896 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12897 msm_routing_put_voice_mixer),
12898 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12899 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12900 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12901 msm_routing_put_voice_mixer),
12902 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12903 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12904 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12905 msm_routing_put_voice_mixer),
12906 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12908 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12909 msm_routing_put_voice_mixer),
12910};
12911
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012912static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012913 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12914 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012915 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12916 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012917 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12918 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012919 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12920 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012921};
12922
12923static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012924 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012926 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12927 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012928 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012930 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12931 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012932};
12933
12934static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012935 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12936 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012937 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12938 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012939 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12940 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012941 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12942 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012943};
12944
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012945static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012946 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
12947 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012948 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12949 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012950 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
12951 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012952 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12953 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012954 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012955 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12956 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012957 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012958 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12959 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012960 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012961 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12962 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012963 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012964 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12965 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012966 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012967 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12968 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012969 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012970 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12971 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012972 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012973 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12974 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012975 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012976 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12977 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012978 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012979 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12980 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012981 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12983 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012984 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012985 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12986 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012987 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12989 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012990 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012991 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12992 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012993 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
12994 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012995 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12996 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012997 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
12998MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012999 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013000 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13002 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13003 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13005 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013006 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13008 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13009 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13010 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13011 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13012 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13014 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13015 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13017 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13018 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13019 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13020 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13021 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13022 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13023 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013024};
13025
13026static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13028 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13030 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13032 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13034 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013036 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13037 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013038 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013039 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13040 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013041 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013042 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13043 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013044 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13046 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013048 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13049 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013050 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013051 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13052 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013053 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013054 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13055 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013056 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013057 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13058 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013060 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13061 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013062 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013063 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13064 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013065 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013066 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13067 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013068 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013069 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13070 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013071 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13073 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013074 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013075 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13076 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013077 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13079 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13080 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13081 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13082 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013083 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13085 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13086 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13087 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13088 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13089 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13091 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13092 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13093 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13094 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13095 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13097 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13098 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13099 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13100 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013101};
13102
13103static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013104 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13105 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013106 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13107 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013108 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13109 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013110 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13111 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013112 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13113 MSM_BACKEND_DAI_SLIMBUS_0_TX,
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("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13117 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013118 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13119 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013120 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13121 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013122 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13123 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013124 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13125 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013126 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13127 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013128 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13129 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013130 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13131 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013132 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13133 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013134 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13135 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013136 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13137 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013138 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13139 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013140 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13141 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013142 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13143 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013144 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13145 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013146 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13147 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013148 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13149 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013150 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13151 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013152 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13153 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013154 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13155 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013156 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13157 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013158 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13159 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013160 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13161 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013162 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13163 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013164 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13165 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013166 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13167 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013168 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13169 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13170 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13171 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13172 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13173 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13176 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13177 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13179 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13180 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13181 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13182 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13183 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13184 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13185 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13186 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13187 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13188 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13189 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13190 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13191 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013192};
13193
13194static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013195 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13196 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013197 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13198 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013199 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13200 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013201 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13202 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013203 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13204 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013205 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13206 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013207 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13208 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013209 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13210 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013211 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13212 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013213 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13214 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013215 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13216 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013217 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13218 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013219 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13220 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013221 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13222 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013223 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13224 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013225 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13226 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013227 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13228 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013229 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13230 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013231 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13232 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013233 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13234 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013235 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13236 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013237 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13238 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013239 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13240 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013241 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13242 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013243 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13244 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013245 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13246 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013247 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13248 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013249 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13250 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013251 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13252 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013253 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13254 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013255 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13256 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013257 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13258 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013259 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13260 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013261 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13262 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013263 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13264 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013265 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13266 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013267 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13268 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013269 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13270 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013271 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13272 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13273 1, 0, msm_routing_get_voice_stub_mixer,
13274 msm_routing_put_voice_stub_mixer),
13275 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13276 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13277 1, 0, msm_routing_get_voice_stub_mixer,
13278 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013279 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13280 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13281 1, 0, msm_routing_get_voice_stub_mixer,
13282 msm_routing_put_voice_stub_mixer),
13283 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13284 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13285 1, 0, msm_routing_get_voice_stub_mixer,
13286 msm_routing_put_voice_stub_mixer),
13287 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13288 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13289 1, 0, msm_routing_get_voice_stub_mixer,
13290 msm_routing_put_voice_stub_mixer),
13291 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13293 1, 0, msm_routing_get_voice_stub_mixer,
13294 msm_routing_put_voice_stub_mixer),
13295 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13297 1, 0, msm_routing_get_voice_stub_mixer,
13298 msm_routing_put_voice_stub_mixer),
13299 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13300 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13301 1, 0, msm_routing_get_voice_stub_mixer,
13302 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013303};
13304
13305static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013306 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13307 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013308 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13309 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013310 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13311 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013312 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13313 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013314 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13315 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013316 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13317 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013318 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13319 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013320 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13321 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013322 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13323 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013324 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13325 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013326 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13327 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013328 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13329 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013330 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13331 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013332 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13333 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013334 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13335 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013336 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13337 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013338 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13339 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013340 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13341 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013342 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13343 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013344 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13345 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013346 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13347 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013348 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13349 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013350 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13351 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013352 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13353 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013354 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13355 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013356 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13357 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013358 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13359 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013360 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13361 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013362 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13363 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013364 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13365 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013366 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13367 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13368 1, 0, msm_routing_get_voice_stub_mixer,
13369 msm_routing_put_voice_stub_mixer),
13370 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13371 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13372 1, 0, msm_routing_get_voice_stub_mixer,
13373 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013374 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13375 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13376 1, 0, msm_routing_get_voice_stub_mixer,
13377 msm_routing_put_voice_stub_mixer),
13378 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13379 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13380 1, 0, msm_routing_get_voice_stub_mixer,
13381 msm_routing_put_voice_stub_mixer),
13382 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13383 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13384 1, 0, msm_routing_get_voice_stub_mixer,
13385 msm_routing_put_voice_stub_mixer),
13386 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13387 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13388 1, 0, msm_routing_get_voice_stub_mixer,
13389 msm_routing_put_voice_stub_mixer),
13390 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13391 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13392 1, 0, msm_routing_get_voice_stub_mixer,
13393 msm_routing_put_voice_stub_mixer),
13394 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13396 1, 0, msm_routing_get_voice_stub_mixer,
13397 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013398};
13399
13400static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013401 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13402 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013403 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13404 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013405 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13406 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013407 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13408 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013409 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013411 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13412 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013413 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13414 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013415 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13416 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013417 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13418 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013419 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13420 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013421 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013423 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13424 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013425 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13426 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013427 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13428 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013429 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13430 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013431 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13432 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013433 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13434 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013435 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13436 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013437 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13438 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013439 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13440 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013441 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13442 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013443 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13444 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013445 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13446 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013447 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13448 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013449 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13450 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013451 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13452 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013453 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13454 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013455 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13456 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013457 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13458 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013459 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13460 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013461 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13462 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13463 1, 0, msm_routing_get_voice_stub_mixer,
13464 msm_routing_put_voice_stub_mixer),
13465 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13466 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13467 1, 0, msm_routing_get_voice_stub_mixer,
13468 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013469 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13470 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13471 1, 0, msm_routing_get_voice_stub_mixer,
13472 msm_routing_put_voice_stub_mixer),
13473 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13474 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13475 1, 0, msm_routing_get_voice_stub_mixer,
13476 msm_routing_put_voice_stub_mixer),
13477 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13479 1, 0, msm_routing_get_voice_stub_mixer,
13480 msm_routing_put_voice_stub_mixer),
13481 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13483 1, 0, msm_routing_get_voice_stub_mixer,
13484 msm_routing_put_voice_stub_mixer),
13485 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13486 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13487 1, 0, msm_routing_get_voice_stub_mixer,
13488 msm_routing_put_voice_stub_mixer),
13489 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13491 1, 0, msm_routing_get_voice_stub_mixer,
13492 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013493};
13494
13495static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013496 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13497 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013498 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13499 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013500 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13501 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013502 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13503 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013504 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13506 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013507 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013508 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13509 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013510 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13511 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013512 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13513 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013514 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13515 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013516 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13517 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013518 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13519 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013520 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13521 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013522 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13523 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013524 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13525 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013526 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13527 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013528 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13529 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013530 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13531 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013532 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13533 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013534 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13535 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013536 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13537 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013538 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13539 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013540 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13541 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013542 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13543 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013544 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13545 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013546 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13547 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013548 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13549 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013550 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13551 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013552 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13553 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013554 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13555 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013556 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13557 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013558 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13559 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013560 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13561 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13562 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13563 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13565 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013566 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13567 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13568 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13569 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13571 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13572 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13573 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13574 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13575 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13577 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13578 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13580 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13581 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13583 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013584};
13585
13586static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013587 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13588 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013589 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013591 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13592 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013593 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013595 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13596 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013597 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013599 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13600 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013601 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013603 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13604 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013605 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013607 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13608 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013609 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013611 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13612 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013613 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013615 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13616 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013617 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013619 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13620 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013621 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013623 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13624 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013625 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13626 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013627 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13628 MSM_BACKEND_DAI_INT0_MI2S_RX,
13629 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13630 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631};
13632
13633static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013634 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13635 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013636 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013638 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13639 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013640 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013642 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013644 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013646 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13647 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013648 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013650 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13651 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013652 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013654 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013656 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013658 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13659 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013660 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013662 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013664 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013666 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13667 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013668 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013670 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13671 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013672 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13673 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013674 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13675 MSM_BACKEND_DAI_INT4_MI2S_RX,
13676 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13677 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013678};
13679
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013680static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13681 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13682 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13683 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13684 msm_routing_put_port_mixer),
13685 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13686 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13688 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013689 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13690 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13691 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13692 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013693};
13694
13695static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13696 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13697 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13698 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13699 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013700 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13701 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13702 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13703 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013704 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13705 MSM_BACKEND_DAI_INT4_MI2S_RX,
13706 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13707 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013708};
13709
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013710static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013711 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013713 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013715 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013717 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013719 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013721 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013723 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013725 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013727 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013729 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013731 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013733 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013735 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013737 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013739 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13740 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013741 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013743 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013745 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013747 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013749 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013751 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013753 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013755 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013757 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013759 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013761 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013763 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013765 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013767 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013769 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013771 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013773 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013775 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013777 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013779 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13780 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013781 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013783 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13784 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013785 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013787 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13788 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013789 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013791 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013793 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013795 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013797 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13798 msm_routing_put_port_mixer),
13799 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13800 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13801 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013802 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013803};
13804
13805static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013806 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013808 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013810 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013812 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013814 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013816 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013818 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013820 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013822 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013824 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013828 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13829 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013830};
13831
13832static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013833 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13834 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013835 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013837 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13838 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013839 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013841 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013843 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013845 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13846 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013847 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13848 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013849};
13850
13851static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013852 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13853 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013854 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013856 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13857 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013858 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013860 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13861 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013862 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13863 msm_routing_put_port_mixer),
13864};
13865
13866static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013867 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13868 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013869 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013871 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13872 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013873 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013875 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13876 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013877 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13878 msm_routing_put_port_mixer),
13879};
13880
Rohit Kumara5077932017-09-10 22:05:05 +053013881static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013882 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13883 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013884 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013886 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013888 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013890 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13891 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013892 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13893 msm_routing_put_port_mixer),
13894};
13895
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013896static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013897 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13898 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013899 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013901 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13902 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013903 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013905 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13906 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013907 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013909 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013911 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013913 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13914 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013915 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013917 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13918 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013919 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13920 msm_routing_put_port_mixer),
13921};
13922
13923static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013924 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13925 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013926 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013928 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13929 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013930 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013932 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13933 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013934 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013936 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13937 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013938 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013940 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13941 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013942 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13943 msm_routing_put_port_mixer),
13944};
13945
13946static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013947 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013949 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013951 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013953 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013955 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013957 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013959 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13960 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013961 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013963 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13964 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013965 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013967 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013969 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013971 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13972 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013973 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013975 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13976 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013977 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013979 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13980 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013981 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013983 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13984 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013985 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013987 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13988 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013989 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013991 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13992 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013993 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13994 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013995 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13996 MSM_BACKEND_DAI_SLIMBUS_6_RX,
13997 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13998 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013999};
14000
14001static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014002 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14003 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014004 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014006 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14007 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014008 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14009 msm_routing_put_port_mixer),
14010};
14011
14012static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014013 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14014 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014015 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014017 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14018 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014019 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14020 msm_routing_put_port_mixer),
14021};
14022
14023
14024static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014025 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14026 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014027 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14028 msm_routing_put_port_mixer),
14029};
14030
14031static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14035 msm_routing_put_port_mixer),
14036};
14037
Karthikeyan Mani57550082018-05-03 18:43:58 -070014038static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14039 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14041 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14042 msm_routing_put_port_mixer),
14043};
14044
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014046 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14047 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014048 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14049 msm_routing_put_port_mixer),
14050};
14051
14052static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014053 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14054 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014055 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014057 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14058 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014059 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14060 msm_routing_put_port_mixer),
14061};
14062
14063static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014064 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014066 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014068 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14069 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014070 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014072 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14073 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014074 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014076 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14077 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014078 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014080 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014082 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014084 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14085 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014086 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014088 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14089 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014090 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014092 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14093 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014094 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014096 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14097 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014098 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014100 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14101 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014102 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14103 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014104};
14105
14106static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014107 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014109 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14110 msm_routing_put_port_mixer),
14111};
14112
14113static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014114 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14115 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014116 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014118 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14119 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014120 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014122 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14123 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014124 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014126 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14127 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014128 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014130 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14131 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014132 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014134 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14135 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014136 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014138 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14139 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014140 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014142 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014144 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014146 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14147 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014148 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14149 msm_routing_put_port_mixer),
14150};
14151
Rohit Kumara5077932017-09-10 22:05:05 +053014152static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014153 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014155 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014157 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014159 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014161 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014163 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014165 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014167 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014169 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14170 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014171 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014175 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014177 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14178 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014179 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14180 msm_routing_put_port_mixer),
14181};
14182
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014183static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014184 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14185 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014186 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14187 msm_routing_get_port_mixer,
14188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014189 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14190 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014191 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14192 msm_routing_get_port_mixer,
14193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014194 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14195 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014196 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14197 msm_routing_get_port_mixer,
14198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014199 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14200 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014201 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14202 msm_routing_get_port_mixer,
14203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014204 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14205 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014206 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14207 msm_routing_get_port_mixer,
14208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014209 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14210 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014211 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14212 msm_routing_get_port_mixer,
14213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014214 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014216 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14217 msm_routing_get_port_mixer,
14218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014219 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14220 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014221 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14222 msm_routing_get_port_mixer,
14223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014224 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14225 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014226 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14227 msm_routing_get_port_mixer,
14228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014229 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14230 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014231 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14232 msm_routing_get_port_mixer,
14233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014234 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014236 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14237 msm_routing_get_port_mixer,
14238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014239 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14240 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014241 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14242 msm_routing_get_port_mixer,
14243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014244 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14245 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014246 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14247 msm_routing_get_port_mixer,
14248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014249 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14250 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014251 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14252 msm_routing_get_port_mixer,
14253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014254 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014256 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14257 msm_routing_get_port_mixer,
14258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014259 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14260 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014261 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14262 msm_routing_get_port_mixer,
14263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014264 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14265 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014266 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14267 msm_routing_get_port_mixer,
14268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014269 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14270 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014271 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14272 msm_routing_get_port_mixer,
14273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014274 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014276 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14277 msm_routing_get_port_mixer,
14278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014279 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014281 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14282 msm_routing_get_port_mixer,
14283 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014284};
14285
14286static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014287 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14288 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014289 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14290 msm_routing_get_port_mixer,
14291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014292 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14293 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014294 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14295 msm_routing_get_port_mixer,
14296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014297 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14298 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014299 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14300 msm_routing_get_port_mixer,
14301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014302 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14303 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014304 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14305 msm_routing_get_port_mixer,
14306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014307 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14308 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014309 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14310 msm_routing_get_port_mixer,
14311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014312 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14313 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014314 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14315 msm_routing_get_port_mixer,
14316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014317 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14318 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014319 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14320 msm_routing_get_port_mixer,
14321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014322 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14323 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014324 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14325 msm_routing_get_port_mixer,
14326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014327 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14328 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014329 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14330 msm_routing_get_port_mixer,
14331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014332 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14333 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014334 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14335 msm_routing_get_port_mixer,
14336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014337 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14338 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014339 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14340 msm_routing_get_port_mixer,
14341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014342 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14343 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014344 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14345 msm_routing_get_port_mixer,
14346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014347 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14348 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014349 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14350 msm_routing_get_port_mixer,
14351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014352 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14353 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014354 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14355 msm_routing_get_port_mixer,
14356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014357 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14358 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014359 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14360 msm_routing_get_port_mixer,
14361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014362 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14363 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014364 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14365 msm_routing_get_port_mixer,
14366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014367 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14368 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014369 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14370 msm_routing_get_port_mixer,
14371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014372 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14373 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014374 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14375 msm_routing_get_port_mixer,
14376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014377 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14378 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014379 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14380 msm_routing_get_port_mixer,
14381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014382 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014384 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14385 msm_routing_get_port_mixer,
14386 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014387};
14388
14389static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014390 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14391 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014392 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14393 msm_routing_get_port_mixer,
14394 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014395 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14396 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014397 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14398 msm_routing_get_port_mixer,
14399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014400 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14401 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014402 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14403 msm_routing_get_port_mixer,
14404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014405 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14406 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014407 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14408 msm_routing_get_port_mixer,
14409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014410 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14411 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014412 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14413 msm_routing_get_port_mixer,
14414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014415 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14416 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014417 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14418 msm_routing_get_port_mixer,
14419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014420 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14421 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014422 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14423 msm_routing_get_port_mixer,
14424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014425 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14426 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014427 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14428 msm_routing_get_port_mixer,
14429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014430 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14431 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014432 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14433 msm_routing_get_port_mixer,
14434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014435 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14436 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014437 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14438 msm_routing_get_port_mixer,
14439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014440 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14441 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014442 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14443 msm_routing_get_port_mixer,
14444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014445 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14446 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014447 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14448 msm_routing_get_port_mixer,
14449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014450 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14451 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014452 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14453 msm_routing_get_port_mixer,
14454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014455 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14456 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014457 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14458 msm_routing_get_port_mixer,
14459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014460 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14461 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014462 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14463 msm_routing_get_port_mixer,
14464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014465 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14466 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014467 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14468 msm_routing_get_port_mixer,
14469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014470 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14471 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014472 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14473 msm_routing_get_port_mixer,
14474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014475 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014477 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14478 msm_routing_get_port_mixer,
14479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014480 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014482 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14483 msm_routing_get_port_mixer,
14484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014485 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14486 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014487 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14488 msm_routing_get_port_mixer,
14489 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014490};
14491
14492static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014493 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14494 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014495 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14496 msm_routing_get_port_mixer,
14497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014498 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14499 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014500 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14501 msm_routing_get_port_mixer,
14502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014503 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014505 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14506 msm_routing_get_port_mixer,
14507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014508 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14509 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014510 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14511 msm_routing_get_port_mixer,
14512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014513 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14514 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014515 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14516 msm_routing_get_port_mixer,
14517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014518 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14519 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014520 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14521 msm_routing_get_port_mixer,
14522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014523 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14524 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014525 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14526 msm_routing_get_port_mixer,
14527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014528 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14529 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014530 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14531 msm_routing_get_port_mixer,
14532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014533 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14534 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014535 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14536 msm_routing_get_port_mixer,
14537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014538 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14539 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014540 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14541 msm_routing_get_port_mixer,
14542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014543 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14544 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014545 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14546 msm_routing_get_port_mixer,
14547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014548 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14549 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014550 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14551 msm_routing_get_port_mixer,
14552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014553 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14554 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014555 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14556 msm_routing_get_port_mixer,
14557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014558 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14559 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014560 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14561 msm_routing_get_port_mixer,
14562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014563 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14564 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014565 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14566 msm_routing_get_port_mixer,
14567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014568 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014570 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14571 msm_routing_get_port_mixer,
14572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014573 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14574 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014575 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14576 msm_routing_get_port_mixer,
14577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014578 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014580 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14581 msm_routing_get_port_mixer,
14582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014583 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14584 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014585 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14586 msm_routing_get_port_mixer,
14587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014588 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014590 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14591 msm_routing_get_port_mixer,
14592 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014593};
14594
14595static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014596 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14597 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014598 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14599 msm_routing_get_port_mixer,
14600 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014601 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14602 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014603 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14604 msm_routing_get_port_mixer,
14605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014606 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14607 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014608 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14609 msm_routing_get_port_mixer,
14610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014611 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14612 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014613 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14614 msm_routing_get_port_mixer,
14615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014616 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014618 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14619 msm_routing_get_port_mixer,
14620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014621 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14622 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014623 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14624 msm_routing_get_port_mixer,
14625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014626 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14627 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014628 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14629 msm_routing_get_port_mixer,
14630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014631 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14632 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014633 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14634 msm_routing_get_port_mixer,
14635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014636 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14637 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014638 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14639 msm_routing_get_port_mixer,
14640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014641 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14642 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014643 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14644 msm_routing_get_port_mixer,
14645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014646 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14647 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014648 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14649 msm_routing_get_port_mixer,
14650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014651 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14652 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014653 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14654 msm_routing_get_port_mixer,
14655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014656 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14657 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014658 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14659 msm_routing_get_port_mixer,
14660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014661 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14662 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014663 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14664 msm_routing_get_port_mixer,
14665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014666 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014668 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14669 msm_routing_get_port_mixer,
14670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014671 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14672 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014673 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14674 msm_routing_get_port_mixer,
14675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014676 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14677 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014678 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014683 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014688 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
14692 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014693 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14694 msm_routing_get_port_mixer,
14695 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014696};
14697
14698static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014699 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14700 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014701 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14702 msm_routing_get_port_mixer,
14703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014704 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14705 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014706 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14707 msm_routing_get_port_mixer,
14708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014709 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14710 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014711 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14712 msm_routing_get_port_mixer,
14713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014714 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14715 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014716 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14717 msm_routing_get_port_mixer,
14718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014719 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14720 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014721 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14722 msm_routing_get_port_mixer,
14723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014724 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14725 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014726 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14727 msm_routing_get_port_mixer,
14728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014729 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14730 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014731 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14732 msm_routing_get_port_mixer,
14733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014734 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14735 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014736 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14737 msm_routing_get_port_mixer,
14738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014739 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14740 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014741 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14742 msm_routing_get_port_mixer,
14743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014744 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14745 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014746 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14747 msm_routing_get_port_mixer,
14748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014749 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14750 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014751 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14752 msm_routing_get_port_mixer,
14753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014754 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14755 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014756 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14757 msm_routing_get_port_mixer,
14758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014759 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14760 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014761 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14762 msm_routing_get_port_mixer,
14763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014764 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14765 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014766 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14767 msm_routing_get_port_mixer,
14768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014769 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14770 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014771 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14772 msm_routing_get_port_mixer,
14773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014774 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14775 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014776 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14777 msm_routing_get_port_mixer,
14778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014779 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14780 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014781 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
14785 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014786 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014791 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
14795 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014796 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14797 msm_routing_get_port_mixer,
14798 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014799};
14800
14801static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014802 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14803 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014804 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14805 msm_routing_get_port_mixer,
14806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014807 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14808 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014809 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14810 msm_routing_get_port_mixer,
14811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014812 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14813 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014814 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14815 msm_routing_get_port_mixer,
14816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014817 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14818 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014819 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14820 msm_routing_get_port_mixer,
14821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014822 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14823 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014824 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14825 msm_routing_get_port_mixer,
14826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014827 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14828 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014829 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14830 msm_routing_get_port_mixer,
14831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014832 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14833 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014834 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14835 msm_routing_get_port_mixer,
14836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014837 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014839 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14840 msm_routing_get_port_mixer,
14841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014842 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14843 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014844 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14845 msm_routing_get_port_mixer,
14846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014847 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14848 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014849 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14850 msm_routing_get_port_mixer,
14851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014852 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14853 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014854 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14855 msm_routing_get_port_mixer,
14856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014857 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14858 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014859 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14860 msm_routing_get_port_mixer,
14861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014862 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14863 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014864 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14865 msm_routing_get_port_mixer,
14866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014867 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14868 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014869 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14870 msm_routing_get_port_mixer,
14871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014872 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14873 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014874 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14875 msm_routing_get_port_mixer,
14876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014877 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14878 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014879 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14880 msm_routing_get_port_mixer,
14881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014882 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14883 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014884 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
14888 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014889 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014894 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
14898 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014899 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14900 msm_routing_get_port_mixer,
14901 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014902};
14903
14904static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014905 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14906 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014907 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14908 msm_routing_get_port_mixer,
14909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014910 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14911 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014912 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14913 msm_routing_get_port_mixer,
14914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014915 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14916 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014917 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14918 msm_routing_get_port_mixer,
14919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014920 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14921 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014922 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14923 msm_routing_get_port_mixer,
14924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014925 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14926 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014927 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14928 msm_routing_get_port_mixer,
14929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014930 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14931 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014932 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14933 msm_routing_get_port_mixer,
14934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014935 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14936 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014937 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14938 msm_routing_get_port_mixer,
14939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014940 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14941 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014942 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14943 msm_routing_get_port_mixer,
14944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014945 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14946 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014947 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14948 msm_routing_get_port_mixer,
14949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014950 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14951 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014952 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14953 msm_routing_get_port_mixer,
14954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014955 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14956 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014957 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14958 msm_routing_get_port_mixer,
14959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014960 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014962 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14963 msm_routing_get_port_mixer,
14964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014965 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14966 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014967 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14968 msm_routing_get_port_mixer,
14969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014970 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14971 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014972 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14973 msm_routing_get_port_mixer,
14974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014975 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14976 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014977 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14978 msm_routing_get_port_mixer,
14979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014980 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14981 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014982 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14983 msm_routing_get_port_mixer,
14984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014985 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14986 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014987 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014992 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
14996 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014997 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15001 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015002 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15003 msm_routing_get_port_mixer,
15004 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015005};
15006
Derek Chenfdcc0982018-10-02 15:14:03 -070015007static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15008 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15009 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15010 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15011 msm_routing_get_port_mixer,
15012 msm_routing_put_port_mixer),
15013};
15014
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015015static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015016 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15017 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015018 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15019 msm_routing_get_port_mixer,
15020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015021 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15022 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015023 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15024 msm_routing_get_port_mixer,
15025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015026 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15027 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015028 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15029 msm_routing_get_port_mixer,
15030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015031 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15032 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015033 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15034 msm_routing_get_port_mixer,
15035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015036 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15037 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015038 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15039 msm_routing_get_port_mixer,
15040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015041 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15042 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015043 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15044 msm_routing_get_port_mixer,
15045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015046 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15047 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015048 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15049 msm_routing_get_port_mixer,
15050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015051 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015053 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15054 msm_routing_get_port_mixer,
15055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015056 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15057 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015058 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15059 msm_routing_get_port_mixer,
15060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015061 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15062 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015063 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15064 msm_routing_get_port_mixer,
15065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015066 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15067 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015068 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15069 msm_routing_get_port_mixer,
15070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015071 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015073 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15074 msm_routing_get_port_mixer,
15075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015076 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15077 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015078 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15079 msm_routing_get_port_mixer,
15080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015081 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15082 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015083 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15084 msm_routing_get_port_mixer,
15085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015086 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15087 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015088 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15089 msm_routing_get_port_mixer,
15090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015091 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15092 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015093 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15094 msm_routing_get_port_mixer,
15095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015096 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15097 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015098 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15099 msm_routing_get_port_mixer,
15100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015101 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15102 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015103 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15104 msm_routing_get_port_mixer,
15105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015106 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15107 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015108 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15109 msm_routing_get_port_mixer,
15110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015111 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15112 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015113 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15114 msm_routing_get_port_mixer,
15115 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015116};
15117
15118static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015119 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15120 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015121 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15122 msm_routing_get_port_mixer,
15123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015124 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15125 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015126 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15127 msm_routing_get_port_mixer,
15128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015129 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15130 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015131 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15132 msm_routing_get_port_mixer,
15133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015134 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015136 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15137 msm_routing_get_port_mixer,
15138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015139 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15140 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015141 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15142 msm_routing_get_port_mixer,
15143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015144 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15145 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015146 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15147 msm_routing_get_port_mixer,
15148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015149 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15150 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015151 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15152 msm_routing_get_port_mixer,
15153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015154 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015156 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15157 msm_routing_get_port_mixer,
15158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015159 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15160 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015161 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15162 msm_routing_get_port_mixer,
15163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015164 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15165 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015166 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15167 msm_routing_get_port_mixer,
15168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015169 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15170 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015171 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15172 msm_routing_get_port_mixer,
15173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015174 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015176 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15177 msm_routing_get_port_mixer,
15178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015179 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015181 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15182 msm_routing_get_port_mixer,
15183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015184 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15185 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015186 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15187 msm_routing_get_port_mixer,
15188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015189 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15190 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015191 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15192 msm_routing_get_port_mixer,
15193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015194 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15195 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015196 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15197 msm_routing_get_port_mixer,
15198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015199 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15200 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015201 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15202 msm_routing_get_port_mixer,
15203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015204 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15205 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015206 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15207 msm_routing_get_port_mixer,
15208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015209 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015211 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15212 msm_routing_get_port_mixer,
15213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015214 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15215 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015216 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15217 msm_routing_get_port_mixer,
15218 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015219};
15220
15221static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015222 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15223 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015224 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15225 msm_routing_get_port_mixer,
15226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015227 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15228 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015229 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15230 msm_routing_get_port_mixer,
15231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015232 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15233 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015234 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15235 msm_routing_get_port_mixer,
15236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015237 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15238 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015239 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15240 msm_routing_get_port_mixer,
15241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015242 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15243 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015244 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15245 msm_routing_get_port_mixer,
15246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015247 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15248 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015249 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15250 msm_routing_get_port_mixer,
15251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015252 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15253 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015254 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15255 msm_routing_get_port_mixer,
15256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015257 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15258 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015259 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15260 msm_routing_get_port_mixer,
15261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015262 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15263 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015264 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15265 msm_routing_get_port_mixer,
15266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015267 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15268 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015269 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15270 msm_routing_get_port_mixer,
15271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015272 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015274 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15275 msm_routing_get_port_mixer,
15276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015277 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15278 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015279 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15280 msm_routing_get_port_mixer,
15281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015282 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15283 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015284 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15285 msm_routing_get_port_mixer,
15286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015287 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15288 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015289 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15290 msm_routing_get_port_mixer,
15291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015292 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15293 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015294 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15295 msm_routing_get_port_mixer,
15296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015297 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15298 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015299 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15300 msm_routing_get_port_mixer,
15301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015302 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15303 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015304 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15305 msm_routing_get_port_mixer,
15306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015307 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15308 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015309 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15310 msm_routing_get_port_mixer,
15311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015312 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15313 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015314 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15315 msm_routing_get_port_mixer,
15316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015317 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15318 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015319 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15320 msm_routing_get_port_mixer,
15321 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015322};
15323
15324static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015325 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15326 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015327 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15328 msm_routing_get_port_mixer,
15329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015330 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15331 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015332 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15333 msm_routing_get_port_mixer,
15334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015335 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15336 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015337 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15338 msm_routing_get_port_mixer,
15339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015340 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15341 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015342 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15343 msm_routing_get_port_mixer,
15344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015345 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15346 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015347 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15348 msm_routing_get_port_mixer,
15349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015350 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15351 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015352 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15353 msm_routing_get_port_mixer,
15354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015355 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15356 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015357 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15358 msm_routing_get_port_mixer,
15359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015360 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15361 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015362 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15363 msm_routing_get_port_mixer,
15364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015365 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15366 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015367 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15368 msm_routing_get_port_mixer,
15369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015370 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15371 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015372 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15373 msm_routing_get_port_mixer,
15374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015375 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15376 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015377 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15378 msm_routing_get_port_mixer,
15379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015380 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15381 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015382 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15383 msm_routing_get_port_mixer,
15384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015385 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015387 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15388 msm_routing_get_port_mixer,
15389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015390 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15391 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015392 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15393 msm_routing_get_port_mixer,
15394 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015395 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15396 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015397 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15398 msm_routing_get_port_mixer,
15399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015400 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15401 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015402 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15403 msm_routing_get_port_mixer,
15404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015405 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15406 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015407 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15408 msm_routing_get_port_mixer,
15409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015410 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15411 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015412 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15413 msm_routing_get_port_mixer,
15414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015415 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15416 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015417 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15418 msm_routing_get_port_mixer,
15419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015420 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15421 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015422 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15423 msm_routing_get_port_mixer,
15424 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015425};
15426
15427static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015428 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15429 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015430 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15431 msm_routing_get_port_mixer,
15432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015433 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15434 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015435 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15436 msm_routing_get_port_mixer,
15437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015438 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15439 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015440 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15441 msm_routing_get_port_mixer,
15442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015443 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15444 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015445 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15446 msm_routing_get_port_mixer,
15447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015448 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15449 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015450 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15451 msm_routing_get_port_mixer,
15452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015453 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15454 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015455 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15456 msm_routing_get_port_mixer,
15457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015458 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15459 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015460 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15461 msm_routing_get_port_mixer,
15462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015463 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15464 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015465 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15466 msm_routing_get_port_mixer,
15467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015468 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15469 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015470 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15471 msm_routing_get_port_mixer,
15472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015473 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15474 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015475 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15476 msm_routing_get_port_mixer,
15477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015478 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15479 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015480 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15481 msm_routing_get_port_mixer,
15482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015483 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15484 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015485 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15486 msm_routing_get_port_mixer,
15487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015488 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15489 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015490 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15491 msm_routing_get_port_mixer,
15492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015493 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15494 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015495 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15496 msm_routing_get_port_mixer,
15497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015498 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015500 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15501 msm_routing_get_port_mixer,
15502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015503 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15504 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015505 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15506 msm_routing_get_port_mixer,
15507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015508 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15509 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015510 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15514 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015515 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015520 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15524 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015525 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15526 msm_routing_get_port_mixer,
15527 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015528};
15529
15530static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015531 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15532 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015533 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15534 msm_routing_get_port_mixer,
15535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015536 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15537 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015538 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15539 msm_routing_get_port_mixer,
15540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015541 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15542 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015543 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15544 msm_routing_get_port_mixer,
15545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015546 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15547 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015548 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15549 msm_routing_get_port_mixer,
15550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015551 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15552 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015553 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15554 msm_routing_get_port_mixer,
15555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015556 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15557 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015558 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15559 msm_routing_get_port_mixer,
15560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015561 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15562 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015563 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15564 msm_routing_get_port_mixer,
15565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015566 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15567 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015568 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15569 msm_routing_get_port_mixer,
15570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015571 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15572 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015573 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15574 msm_routing_get_port_mixer,
15575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015576 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15577 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015578 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15579 msm_routing_get_port_mixer,
15580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015581 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15582 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015583 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15584 msm_routing_get_port_mixer,
15585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015586 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15587 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015588 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15589 msm_routing_get_port_mixer,
15590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015591 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15592 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015593 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15594 msm_routing_get_port_mixer,
15595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015596 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15597 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015598 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15599 msm_routing_get_port_mixer,
15600 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015601 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15602 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015603 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15604 msm_routing_get_port_mixer,
15605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015606 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15607 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015608 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15609 msm_routing_get_port_mixer,
15610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015613 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15617 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015618 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15622 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015623 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015628 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15629 msm_routing_get_port_mixer,
15630 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015631};
15632
15633static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015634 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15635 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015636 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15637 msm_routing_get_port_mixer,
15638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015639 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15640 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015641 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15642 msm_routing_get_port_mixer,
15643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015644 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15645 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015646 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15647 msm_routing_get_port_mixer,
15648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015649 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15650 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015651 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15652 msm_routing_get_port_mixer,
15653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015654 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15655 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015656 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15657 msm_routing_get_port_mixer,
15658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015659 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15660 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015661 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15662 msm_routing_get_port_mixer,
15663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015664 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15665 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015666 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15667 msm_routing_get_port_mixer,
15668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015669 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15670 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015671 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15672 msm_routing_get_port_mixer,
15673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015674 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15675 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015676 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15677 msm_routing_get_port_mixer,
15678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015679 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15680 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015681 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15682 msm_routing_get_port_mixer,
15683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015684 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15685 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015686 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15687 msm_routing_get_port_mixer,
15688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015689 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15690 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015691 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15692 msm_routing_get_port_mixer,
15693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15695 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015696 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15697 msm_routing_get_port_mixer,
15698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015699 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15700 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015701 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15702 msm_routing_get_port_mixer,
15703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015704 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15705 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015706 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15707 msm_routing_get_port_mixer,
15708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015709 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15710 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015711 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15712 msm_routing_get_port_mixer,
15713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015714 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15715 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015716 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15720 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015721 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15725 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015726 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15730 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015731 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15732 msm_routing_get_port_mixer,
15733 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015734};
15735
15736static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015737 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15738 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015739 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15740 msm_routing_get_port_mixer,
15741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015742 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15743 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015744 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15745 msm_routing_get_port_mixer,
15746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015747 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15748 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015749 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15750 msm_routing_get_port_mixer,
15751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015752 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15753 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015754 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15755 msm_routing_get_port_mixer,
15756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015757 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15758 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015759 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15760 msm_routing_get_port_mixer,
15761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015762 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15763 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015764 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15765 msm_routing_get_port_mixer,
15766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015767 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15768 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015769 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15770 msm_routing_get_port_mixer,
15771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015772 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15773 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015774 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15775 msm_routing_get_port_mixer,
15776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015777 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15778 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015779 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15780 msm_routing_get_port_mixer,
15781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015782 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15783 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015784 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15785 msm_routing_get_port_mixer,
15786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15788 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015789 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15790 msm_routing_get_port_mixer,
15791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015792 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15793 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015794 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15795 msm_routing_get_port_mixer,
15796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015797 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15798 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015799 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15800 msm_routing_get_port_mixer,
15801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015802 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15803 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015804 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15805 msm_routing_get_port_mixer,
15806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015807 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15808 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015809 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15810 msm_routing_get_port_mixer,
15811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015812 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15813 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015814 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15815 msm_routing_get_port_mixer,
15816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015817 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15818 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015819 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15823 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015824 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15828 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015829 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15833 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015834 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15835 msm_routing_get_port_mixer,
15836 msm_routing_put_port_mixer),
15837};
15838
15839static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015840 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015842 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15843 msm_routing_get_port_mixer,
15844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015845 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15846 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015847 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15848 msm_routing_get_port_mixer,
15849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015850 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15851 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015852 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15853 msm_routing_get_port_mixer,
15854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015855 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015857 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15858 msm_routing_get_port_mixer,
15859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015860 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15861 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015862 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15863 msm_routing_get_port_mixer,
15864 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015865 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15866 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015867 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15868 msm_routing_get_port_mixer,
15869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015870 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15871 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015872 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15873 msm_routing_get_port_mixer,
15874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015875 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15876 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015877 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15878 msm_routing_get_port_mixer,
15879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015880 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15881 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015882 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15883 msm_routing_get_port_mixer,
15884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015885 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15886 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015887 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15888 msm_routing_get_port_mixer,
15889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015890 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015892 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15893 msm_routing_get_port_mixer,
15894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015895 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15896 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015897 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15898 msm_routing_get_port_mixer,
15899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015900 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15901 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015902 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15903 msm_routing_get_port_mixer,
15904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015905 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15906 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015907 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15908 msm_routing_get_port_mixer,
15909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015910 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15911 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015912 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15913 msm_routing_get_port_mixer,
15914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015915 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15916 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015917 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15918 msm_routing_get_port_mixer,
15919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015920 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15921 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015922 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
15926 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015927 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015932 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
15936 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015937 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15938 msm_routing_get_port_mixer,
15939 msm_routing_put_port_mixer),
15940};
15941
15942static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015943 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15944 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015945 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15946 msm_routing_get_port_mixer,
15947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015948 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15949 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015950 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15951 msm_routing_get_port_mixer,
15952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015953 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15954 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015955 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15956 msm_routing_get_port_mixer,
15957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015958 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15959 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015960 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15961 msm_routing_get_port_mixer,
15962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015963 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15964 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015965 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15966 msm_routing_get_port_mixer,
15967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015968 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15969 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015970 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15971 msm_routing_get_port_mixer,
15972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015973 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15974 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015975 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15976 msm_routing_get_port_mixer,
15977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015978 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15979 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015980 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15981 msm_routing_get_port_mixer,
15982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015983 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15984 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015985 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15986 msm_routing_get_port_mixer,
15987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015988 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15989 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015990 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15991 msm_routing_get_port_mixer,
15992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015993 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015995 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15996 msm_routing_get_port_mixer,
15997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015998 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15999 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016000 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16001 msm_routing_get_port_mixer,
16002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016003 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16004 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016005 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16006 msm_routing_get_port_mixer,
16007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016008 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16009 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016010 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16011 msm_routing_get_port_mixer,
16012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016013 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16014 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016015 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16016 msm_routing_get_port_mixer,
16017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016018 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16019 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016020 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16021 msm_routing_get_port_mixer,
16022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016023 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016025 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016030 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16034 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016035 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16039 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016040 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16041 msm_routing_get_port_mixer,
16042 msm_routing_put_port_mixer),
16043};
16044
16045static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016046 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016048 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16049 msm_routing_get_port_mixer,
16050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016051 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16052 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016053 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16054 msm_routing_get_port_mixer,
16055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016056 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16057 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016058 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16059 msm_routing_get_port_mixer,
16060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016061 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16062 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016063 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16064 msm_routing_get_port_mixer,
16065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016066 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016068 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16069 msm_routing_get_port_mixer,
16070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016071 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16072 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016073 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16074 msm_routing_get_port_mixer,
16075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016076 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16077 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016078 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16079 msm_routing_get_port_mixer,
16080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016081 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16082 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016083 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16084 msm_routing_get_port_mixer,
16085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016086 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16087 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016088 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16089 msm_routing_get_port_mixer,
16090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016091 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16092 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016093 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16094 msm_routing_get_port_mixer,
16095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016096 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16097 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016098 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16099 msm_routing_get_port_mixer,
16100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016101 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16102 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016103 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16104 msm_routing_get_port_mixer,
16105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016106 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016108 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16109 msm_routing_get_port_mixer,
16110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016111 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16112 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016113 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16114 msm_routing_get_port_mixer,
16115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016116 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16117 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016118 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16119 msm_routing_get_port_mixer,
16120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016121 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16122 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016123 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16124 msm_routing_get_port_mixer,
16125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16127 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016128 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16132 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016133 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016138 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16142 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016143 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16144 msm_routing_get_port_mixer,
16145 msm_routing_put_port_mixer),
16146};
16147
16148static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016149 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16150 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016151 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16152 msm_routing_get_port_mixer,
16153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016154 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16155 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016156 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16157 msm_routing_get_port_mixer,
16158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016159 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16160 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016161 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16162 msm_routing_get_port_mixer,
16163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016164 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16165 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016166 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16167 msm_routing_get_port_mixer,
16168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016169 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16170 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016171 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16172 msm_routing_get_port_mixer,
16173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016174 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16175 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016176 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16177 msm_routing_get_port_mixer,
16178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016179 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16180 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016181 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16182 msm_routing_get_port_mixer,
16183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016184 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16185 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016186 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16187 msm_routing_get_port_mixer,
16188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016189 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16190 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016191 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16192 msm_routing_get_port_mixer,
16193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016194 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16195 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016196 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16197 msm_routing_get_port_mixer,
16198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016199 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16200 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016201 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16202 msm_routing_get_port_mixer,
16203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016206 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16207 msm_routing_get_port_mixer,
16208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016209 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16210 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016211 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16212 msm_routing_get_port_mixer,
16213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016214 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16215 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016216 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16217 msm_routing_get_port_mixer,
16218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016219 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16220 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016221 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16222 msm_routing_get_port_mixer,
16223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016224 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16225 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016226 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16227 msm_routing_get_port_mixer,
16228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016229 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16230 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016231 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016236 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016241 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16245 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016246 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16247 msm_routing_get_port_mixer,
16248 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016249};
16250
16251static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016252 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16253 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016254 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016256 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16257 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016258 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016260 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16261 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016262 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016264 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16265 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016266 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016268 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16269 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016270 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016272 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16273 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016274 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016276 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16277 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016278 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16279 msm_routing_put_port_mixer),
16280};
16281
16282static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016283 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16284 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016285 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016287 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16288 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016289 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016291 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16292 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016293 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016295 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16296 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016297 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016299 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16300 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016301 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016303 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16304 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016305 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016307 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16308 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016309 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016311 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16312 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016313 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016315 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16316 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016317 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16318 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016319};
16320
16321static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016322 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16323 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016324 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16325 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016326 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16327 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016328 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16329 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016330 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16331 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016332 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16333 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016334 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16335 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016336 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16337 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016338 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16339 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016340 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16341 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016342 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16343 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016344 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16345 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016346 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16347 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016348 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16349 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016350 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16351 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016352 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16353 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016354 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16355 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16356 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16357 msm_routing_put_listen_mixer),
16358 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16359 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16360 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16361 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016362 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16363 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16364 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16365 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016366 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16367 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16368 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16369 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016370};
16371
16372static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016373 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16374 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016375 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16376 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016377 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16378 SND_SOC_NOPM,
16379 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016380 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16381 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016382 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16383 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016384 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16385 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016386 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16387 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016388 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16389 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016390 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16391 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016392 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16393 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016394 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16395 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016396 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16397 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016398 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016400 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16401 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016402 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016404 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16405 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016406 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16407 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16408 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16409 msm_routing_put_listen_mixer),
16410 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16411 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16412 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16413 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016414 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16415 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16416 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16417 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016418 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16419 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16420 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16421 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016422};
16423
16424static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016425 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16426 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016427 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16428 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016429 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16430 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016431 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16432 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016433 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16434 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016435 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16436 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016437 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16438 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016439 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16440 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016441 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16442 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016443 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16444 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016445 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16446 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016447 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16448 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016449 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16450 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016451 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16452 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016453 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16454 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016455 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16456 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016457 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16458 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16459 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16460 msm_routing_put_listen_mixer),
16461 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16462 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16463 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16464 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016465 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16466 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16467 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16468 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016469 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16470 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16471 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16472 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016473};
16474
16475static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016476 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16477 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016478 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16479 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016480 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16481 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016482 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16483 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016484 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16485 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016486 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16487 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016488 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16489 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016490 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16491 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016492 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16493 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016494 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16495 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016496 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16497 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016498 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16499 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016500 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016502 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16503 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016504 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16505 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016506 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16507 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016508 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16509 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16510 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16511 msm_routing_put_listen_mixer),
16512 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16513 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16514 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16515 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016516 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16517 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16518 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16519 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016520 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16521 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16522 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16523 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016524};
16525
16526static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016527 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16528 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016529 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16530 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016531 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16532 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016533 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16534 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016535 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16536 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016537 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16538 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016539 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16540 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016541 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16542 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016543 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16544 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016545 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16546 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016547 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16548 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016549 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16550 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016551 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16552 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016553 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16554 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016555 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16556 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016557 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16558 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016559 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16560 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16561 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16562 msm_routing_put_listen_mixer),
16563 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16564 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16565 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16566 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016567 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16568 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16569 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16570 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016571 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16572 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16573 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16574 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016575};
16576
16577static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016578 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16579 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016580 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16581 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016582 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16583 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016584 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16585 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016586 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16587 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016588 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16589 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016590 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16591 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016592 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16593 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016594 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16595 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016596 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16597 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016598 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016600 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16601 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016602 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16603 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016604 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16605 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016606 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16607 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016608 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16609 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016610 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16611 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16612 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16613 msm_routing_put_listen_mixer),
16614 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16615 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16616 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16617 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016618 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16620 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16621 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016622 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16623 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16624 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16625 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016626};
16627
16628static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016629 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16630 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016631 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16632 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016633 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16634 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016635 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16636 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016637 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16638 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016639 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16640 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016641 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16642 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016643 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16644 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016645 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16646 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016647 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16648 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016649 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16650 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016651 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16652 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016653 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016655 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16656 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016657 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16658 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016659 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16660 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016661 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16662 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16663 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16664 msm_routing_put_listen_mixer),
16665 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16666 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16667 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16668 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016669 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16670 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16671 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16672 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016673 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16674 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16675 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16676 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016677};
16678
16679static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016680 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16681 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016682 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16683 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016684 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16685 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016686 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16687 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016688 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16689 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016690 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16691 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016692 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16693 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016694 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16695 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016696 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16697 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016698 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16699 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016700 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16701 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016702 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16703 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016704 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16705 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016706 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16707 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016708 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16709 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016710 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16711 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016712 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16713 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16714 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16715 msm_routing_put_listen_mixer),
16716 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16717 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16718 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16719 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016720 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16721 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16722 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16723 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016724 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16725 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16726 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16727 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016728};
16729
16730static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16731 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16732 0, 1, 0, msm_routing_get_switch_mixer,
16733 msm_routing_put_switch_mixer);
16734
16735static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16736 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16737 0, 1, 0, msm_routing_get_switch_mixer,
16738 msm_routing_put_switch_mixer);
16739
16740static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16741 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16742 0, 1, 0, msm_routing_get_switch_mixer,
16743 msm_routing_put_switch_mixer);
16744
16745static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16746 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16747 0, 1, 0, msm_routing_get_switch_mixer,
16748 msm_routing_put_switch_mixer);
16749
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016750static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16751 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16752 0, 1, 0, msm_routing_get_switch_mixer,
16753 msm_routing_put_switch_mixer);
16754
16755static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016756 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16757 0, 1, 0, msm_routing_get_switch_mixer,
16758 msm_routing_put_switch_mixer);
16759
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016760static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16761 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16762 0, 1, 0, msm_routing_get_switch_mixer,
16763 msm_routing_put_switch_mixer);
16764
16765static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16766 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16767 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16768 msm_routing_put_fm_pcmrx_switch_mixer);
16769
16770static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16771 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16772 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16773 msm_routing_put_int0_mi2s_switch_mixer);
16774
16775static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16776 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16777 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16778 msm_routing_put_int4_mi2s_switch_mixer);
16779
16780static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16781 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16782 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16783 msm_routing_put_pri_mi2s_switch_mixer);
16784
16785static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16786 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16787 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16788 msm_routing_put_sec_mi2s_switch_mixer);
16789
16790static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16791 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16792 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16793 msm_routing_put_tert_mi2s_switch_mixer);
16794
16795static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16796 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16797 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16798 msm_routing_put_quat_mi2s_switch_mixer);
16799
Rohit Kumara5077932017-09-10 22:05:05 +053016800static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16801 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16802 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16803 msm_routing_put_quin_mi2s_switch_mixer);
16804
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016805static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16806 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16807 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16808 msm_routing_put_hfp_switch_mixer);
16809
16810static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16811 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16812 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16813 msm_routing_put_hfp_switch_mixer);
16814
16815static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16816 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16817 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16818 msm_routing_put_hfp_switch_mixer);
16819
16820static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16821 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16822 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16823 msm_routing_put_hfp_switch_mixer);
16824
16825static const struct snd_kcontrol_new usb_switch_mixer_controls =
16826 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16827 0, 1, 0, msm_routing_get_usb_switch_mixer,
16828 msm_routing_put_usb_switch_mixer);
16829
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016830static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16831 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16832 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16833 msm_routing_a2dp_switch_mixer_put);
16834
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016835static const struct soc_enum lsm_port_enum =
16836 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16837
16838static const char * const lsm_func_text[] = {
16839 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16840};
16841static const struct soc_enum lsm_func_enum =
16842 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16843
16844static const struct snd_kcontrol_new lsm_controls[] = {
16845 /* kcontrol of lsm_function */
16846 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16847 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16848 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16849 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16850 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16851 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16852 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16853 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16854 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16855 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16856 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16857 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16858 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16859 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16860 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16861 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16862 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16863 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016864 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16865 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016866 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16867 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016868 /* kcontrol of lsm_port */
16869 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16870 msm_routing_lsm_port_get,
16871 msm_routing_lsm_port_put),
16872 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16873 msm_routing_lsm_port_get,
16874 msm_routing_lsm_port_put),
16875 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16876 msm_routing_lsm_port_get,
16877 msm_routing_lsm_port_put),
16878 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16879 msm_routing_lsm_port_get,
16880 msm_routing_lsm_port_put),
16881 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16882 msm_routing_lsm_port_get,
16883 msm_routing_lsm_port_put),
16884 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16885 msm_routing_lsm_port_get,
16886 msm_routing_lsm_port_put),
16887 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16888 msm_routing_lsm_port_get,
16889 msm_routing_lsm_port_put),
16890 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16891 msm_routing_lsm_port_get,
16892 msm_routing_lsm_port_put),
16893};
16894
16895static const char * const aanc_slim_0_rx_text[] = {
16896 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16897 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16898};
16899
16900static const struct soc_enum aanc_slim_0_rx_enum =
16901 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16902 aanc_slim_0_rx_text);
16903
16904static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16905 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16906 msm_routing_slim_0_rx_aanc_mux_get,
16907 msm_routing_slim_0_rx_aanc_mux_put)
16908};
16909
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016910static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16911 struct snd_ctl_elem_value *ucontrol)
16912{
16913 ucontrol->value.integer.value[0] = aanc_level;
16914
16915 return 0;
16916}
16917
16918static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16919 struct snd_ctl_elem_value *ucontrol)
16920{
16921 int ret = 0;
16922
16923 mutex_lock(&routing_lock);
16924 aanc_level = ucontrol->value.integer.value[0];
16925 pr_debug("%s: value: %ld\n",
16926 __func__, ucontrol->value.integer.value[0]);
16927 ret = afe_set_aanc_noise_level(aanc_level);
16928 mutex_unlock(&routing_lock);
16929
16930 return ret;
16931}
16932
16933static const struct snd_kcontrol_new aanc_noise_level[] = {
16934 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16935 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16936};
16937
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016938static int msm_routing_get_stereo_to_custom_stereo_control(
16939 struct snd_kcontrol *kcontrol,
16940 struct snd_ctl_elem_value *ucontrol)
16941{
16942 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16943 return 0;
16944}
16945
16946static int msm_routing_put_stereo_to_custom_stereo_control(
16947 struct snd_kcontrol *kcontrol,
16948 struct snd_ctl_elem_value *ucontrol)
16949{
16950 int flag = 0, i = 0, rc = 0, idx = 0;
16951 int be_index = 0, port_id, topo_id;
16952 unsigned int session_id = 0;
16953 uint16_t op_FL_ip_FL_weight = 0;
16954 uint16_t op_FL_ip_FR_weight = 0;
16955 uint16_t op_FR_ip_FL_weight = 0;
16956 uint16_t op_FR_ip_FR_weight = 0;
16957
16958 flag = ucontrol->value.integer.value[0];
16959 pr_debug("%s E flag %d\n", __func__, flag);
16960
16961 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16962 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16963 __func__, is_custom_stereo_on, flag);
16964 return 0;
16965 }
16966 is_custom_stereo_on = flag ? true : false;
16967 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16968 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16969 port_id = msm_bedais[be_index].port_id;
16970 if (!msm_bedais[be_index].active)
16971 continue;
16972 if ((port_id != SLIMBUS_0_RX) &&
16973 (port_id != RT_PROXY_PORT_001_RX) &&
16974 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16975 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16976 continue;
16977
16978 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16979 MSM_FRONTEND_DAI_MM_SIZE) {
16980 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16981 LEGACY_PCM_MODE)
16982 goto skip_send_custom_stereo;
16983 session_id =
16984 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16985 if (is_custom_stereo_on) {
16986 op_FL_ip_FL_weight =
16987 Q14_GAIN_ZERO_POINT_FIVE;
16988 op_FL_ip_FR_weight =
16989 Q14_GAIN_ZERO_POINT_FIVE;
16990 op_FR_ip_FL_weight =
16991 Q14_GAIN_ZERO_POINT_FIVE;
16992 op_FR_ip_FR_weight =
16993 Q14_GAIN_ZERO_POINT_FIVE;
16994 } else {
16995 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16996 op_FL_ip_FR_weight = 0;
16997 op_FR_ip_FL_weight = 0;
16998 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16999 }
17000 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17001 unsigned long copp =
17002 session_copp_map[i]
17003 [SESSION_TYPE_RX][be_index];
17004 if (!test_bit(idx, &copp))
17005 goto skip_send_custom_stereo;
17006 topo_id = adm_get_topology_for_port_copp_idx(
17007 msm_bedais[be_index].port_id, idx);
17008 if (topo_id < 0)
17009 pr_debug("%s:Err:custom stereo topo %d",
17010 __func__, topo_id);
17011 pr_debug("idx %d\n", idx);
17012 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17013 rc = msm_ds2_dap_set_custom_stereo_onoff
17014 (msm_bedais[be_index].port_id,
17015 idx, is_custom_stereo_on);
17016 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17017 rc = dolby_dap_set_custom_stereo_onoff(
17018 msm_bedais[be_index].port_id,
17019 idx, is_custom_stereo_on);
17020 else
17021 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17022 (msm_bedais[be_index].port_id,
17023 idx, session_id,
17024 op_FL_ip_FL_weight,
17025 op_FL_ip_FR_weight,
17026 op_FR_ip_FL_weight,
17027 op_FR_ip_FR_weight);
17028 if (rc < 0)
17029skip_send_custom_stereo:
17030 pr_err("%s: err setting custom stereo\n",
17031 __func__);
17032 }
17033
17034 }
17035 }
17036 return 0;
17037}
17038
17039static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17040 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17041 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17042 msm_routing_put_stereo_to_custom_stereo_control),
17043};
17044
17045static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17046 struct snd_ctl_elem_value *ucontrol)
17047{
17048 return 0;
17049}
17050
17051static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17052 struct snd_ctl_elem_value *ucontrol)
17053{
17054 int i = 0, j;
17055 int num_app_types = ucontrol->value.integer.value[i++];
17056
17057 pr_debug("%s\n", __func__);
17058
17059 memset(app_type_cfg, 0, MAX_APP_TYPES*
17060 sizeof(struct msm_pcm_routing_app_type_data));
17061 if (num_app_types > MAX_APP_TYPES) {
17062 pr_err("%s: number of app types exceed the max supported\n",
17063 __func__);
17064 return -EINVAL;
17065 }
17066 for (j = 0; j < num_app_types; j++) {
17067 app_type_cfg[j].app_type =
17068 ucontrol->value.integer.value[i++];
17069 app_type_cfg[j].sample_rate =
17070 ucontrol->value.integer.value[i++];
17071 app_type_cfg[j].bit_width =
17072 ucontrol->value.integer.value[i++];
17073 }
17074
17075 return 0;
17076}
17077
17078static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17079 struct snd_ctl_elem_value *ucontrol)
17080{
17081 int j, fe_id, be_id, port_type;
17082 int ret = 0;
17083 unsigned long copp;
17084 struct msm_pcm_routing_bdai_data *bedai;
17085 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17086 SESSION_TYPE_RX;
17087 int app_type = ucontrol->value.integer.value[1];
17088 int gain = (ucontrol->value.integer.value[2] +
17089 ucontrol->value.integer.value[3])/2;
17090
17091 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17092 MSM_AFE_PORT_TYPE_TX;
17093
17094 mutex_lock(&routing_lock);
17095 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17096 if (is_be_dai_extproc(be_id))
17097 continue;
17098
17099 bedai = &msm_bedais[be_id];
17100 if (afe_get_port_type(bedai->port_id) != port_type)
17101 continue;
17102
17103 if (!bedai->active)
17104 continue;
17105
17106 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17107 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17108 continue;
17109
17110 if (app_type !=
17111 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17112 continue;
17113
17114 copp = session_copp_map[fe_id][dir][be_id];
17115 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17116 if (!test_bit(j, &copp))
17117 continue;
17118 ret |= adm_set_volume(bedai->port_id, j, gain);
17119 }
17120 }
17121 }
17122 mutex_unlock(&routing_lock);
17123 return ret ? -EINVAL : 0;
17124}
17125
17126static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17127 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17128 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17129 msm_routing_put_app_type_cfg_control),
17130 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17131 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17132};
17133
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017134static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17135 struct snd_ctl_elem_value *ucontrol)
17136{
17137 int copp_idx, fe_id, be_id, port_type;
17138 int ret = 0;
17139 unsigned long copp;
17140 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017141 u8 *packed_params = NULL;
17142 struct param_hdr_v3 param_hdr;
17143 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17144 sizeof(uint32_t));
17145
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017146 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17147 SESSION_TYPE_RX;
17148 int app_type = ucontrol->value.integer.value[1];
17149 int module_id = ucontrol->value.integer.value[2];
17150 int instance_id = ucontrol->value.integer.value[3];
17151 int param_id = ucontrol->value.integer.value[4];
17152 int param_value = ucontrol->value.integer.value[5];
17153
17154 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17155 MSM_AFE_PORT_TYPE_TX;
17156 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17157 __func__, app_type, module_id,
17158 instance_id, param_id, param_value);
17159
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017160 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17161 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017162 return -ENOMEM;
17163
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017164 memset(&param_hdr, 0, sizeof(param_hdr));
17165 param_hdr.module_id = module_id;
17166 param_hdr.instance_id = instance_id;
17167 param_hdr.param_id = param_id;
17168 param_hdr.param_size = sizeof(uint32_t);
17169
17170 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017171
17172 mutex_lock(&routing_lock);
17173 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17174 if (is_be_dai_extproc(be_id))
17175 continue;
17176
17177 bedai = &msm_bedais[be_id];
17178 if (afe_get_port_type(bedai->port_id) != port_type)
17179 continue;
17180
17181 if (!bedai->active)
17182 continue;
17183
17184 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17185 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17186 continue;
17187
17188 if (app_type !=
17189 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17190 continue;
17191
17192 copp = session_copp_map[fe_id][dir][be_id];
17193 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17194 copp_idx++) {
17195 if (!test_bit(copp_idx, &copp))
17196 continue;
17197
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017198 ret = q6common_pack_pp_params(packed_params,
17199 &param_hdr,
17200 (u8 *) &param_value,
17201 &packed_param_size);
17202 if (ret) {
17203 pr_err("%s: Failed to pack params, error %d\n",
17204 __func__, ret);
17205 goto done;
17206 }
17207
17208 ret = adm_set_pp_params(bedai->port_id,
17209 copp_idx, NULL,
17210 packed_params,
17211 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017212 if (ret) {
17213 pr_err("%s: Setting param failed with err=%d\n",
17214 __func__, ret);
17215 ret = -EINVAL;
17216 goto done;
17217 }
17218 }
17219 }
17220 }
17221done:
17222 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017223 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017224 return ret;
17225}
17226
17227static const struct snd_kcontrol_new module_cfg_controls[] = {
17228 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17229 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17230};
17231
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017232static int msm_routing_get_lsm_app_type_cfg_control(
17233 struct snd_kcontrol *kcontrol,
17234 struct snd_ctl_elem_value *ucontrol)
17235{
Meng Wangadbca4f2018-10-29 14:30:13 +080017236 int shift = ((struct soc_multi_mixer_control *)
17237 kcontrol->private_value)->shift;
17238 int i = 0, j = 0;
17239
17240 ucontrol->value.integer.value[i] = num_app_cfg_types;
17241
17242 for (j = 0; j < num_app_cfg_types; ++j) {
17243 ucontrol->value.integer.value[++i] =
17244 lsm_app_type_cfg[j].app_type;
17245 ucontrol->value.integer.value[++i] =
17246 lsm_app_type_cfg[j].sample_rate;
17247 ucontrol->value.integer.value[++i] =
17248 lsm_app_type_cfg[j].bit_width;
17249 if (shift == 1)
17250 ucontrol->value.integer.value[++i] =
17251 lsm_app_type_cfg[j].num_out_channels;
17252 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017253 return 0;
17254}
17255
17256static int msm_routing_put_lsm_app_type_cfg_control(
17257 struct snd_kcontrol *kcontrol,
17258 struct snd_ctl_elem_value *ucontrol)
17259{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017260 int shift = ((struct soc_multi_mixer_control *)
17261 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017262 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017263
Meng Wangadbca4f2018-10-29 14:30:13 +080017264 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017265 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017266 sizeof(struct msm_pcm_routing_app_type_data));
17267
Meng Wangadbca4f2018-10-29 14:30:13 +080017268 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017269 pr_err("%s: number of app types exceed the max supported\n",
17270 __func__);
17271 return -EINVAL;
17272 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017273
Meng Wangadbca4f2018-10-29 14:30:13 +080017274 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017275 lsm_app_type_cfg[j].app_type =
17276 ucontrol->value.integer.value[i++];
17277 lsm_app_type_cfg[j].sample_rate =
17278 ucontrol->value.integer.value[i++];
17279 lsm_app_type_cfg[j].bit_width =
17280 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017281 /* Shift of 1 indicates this is V2 mixer control */
17282 if (shift == 1)
17283 lsm_app_type_cfg[j].num_out_channels =
17284 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017285 }
17286
17287 return 0;
17288}
17289
17290static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17291 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17292 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17293 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017294 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17295 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17296 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017297};
17298
17299static int msm_routing_get_use_ds1_or_ds2_control(
17300 struct snd_kcontrol *kcontrol,
17301 struct snd_ctl_elem_value *ucontrol)
17302{
17303 ucontrol->value.integer.value[0] = is_ds2_on;
17304 return 0;
17305}
17306
17307static int msm_routing_put_use_ds1_or_ds2_control(
17308 struct snd_kcontrol *kcontrol,
17309 struct snd_ctl_elem_value *ucontrol)
17310{
17311 is_ds2_on = ucontrol->value.integer.value[0];
17312 return 0;
17313}
17314
17315static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17316 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17317 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17318 msm_routing_put_use_ds1_or_ds2_control),
17319};
17320
17321int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17322 struct snd_ctl_elem_value *ucontrol) {
17323 int rc = 0;
17324 int be_idx = 0;
17325 char *param_value;
17326 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017327 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17328 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017329
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017330 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017331 if (!param_value)
17332 return -ENOMEM;
17333
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017334 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017335 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17336 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17337 break;
17338 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017339 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17340 param_hdr.instance_id = INSTANCE_ID_0;
17341 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17342 param_hdr.param_size = param_size;
17343 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17344 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017345 if (rc) {
17346 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17347 kfree(param_value);
17348 return -EINVAL;
17349 }
17350 update_param_value = (int *)param_value;
17351 ucontrol->value.integer.value[0] = update_param_value[0];
17352
17353 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17354 __func__, update_param_value[0]);
17355 }
17356 kfree(param_value);
17357 return 0;
17358}
17359
17360static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17361 struct snd_ctl_elem_value *ucontrol)
17362{
17363 voc_session_id = ucontrol->value.integer.value[0];
17364
17365 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17366
17367 return 0;
17368}
17369
17370static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17371 struct snd_ctl_elem_value *ucontrol)
17372{
17373 ucontrol->value.integer.value[0] = voc_session_id;
17374
17375 return 0;
17376}
17377
17378static struct snd_kcontrol_new msm_voc_session_controls[] = {
17379 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17380 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17381 msm_voc_session_id_put),
17382};
17383
17384static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17385 struct snd_ctl_elem_info *uinfo)
17386{
17387 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17388 uinfo->count = sizeof(struct sound_focus_param);
17389
17390 return 0;
17391}
17392
17393static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17394 struct snd_ctl_elem_value *ucontrol)
17395{
17396 int ret = 0;
17397 struct sound_focus_param soundFocusData;
17398
17399 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17400 sizeof(struct sound_focus_param));
17401 ret = voc_set_sound_focus(soundFocusData);
17402 if (ret) {
17403 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17404 __func__, ret);
17405
17406 ret = -EINVAL;
17407 }
17408
17409 return ret;
17410}
17411
17412static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17413 struct snd_ctl_elem_value *ucontrol)
17414{
17415 int ret = 0;
17416 struct sound_focus_param soundFocusData;
17417
17418 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17419
17420 ret = voc_get_sound_focus(&soundFocusData);
17421 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017422 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017423 __func__, ret);
17424
17425 ret = -EINVAL;
17426 goto done;
17427 }
17428 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17429 sizeof(struct sound_focus_param));
17430
17431done:
17432 return ret;
17433}
17434
17435static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17436 struct snd_ctl_elem_info *uinfo)
17437{
17438 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17439 uinfo->count = sizeof(struct source_tracking_param);
17440
17441 return 0;
17442}
17443
17444static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17445 struct snd_ctl_elem_value *ucontrol)
17446{
Meng Wang92edfde2018-04-24 12:18:37 +080017447 int ret = 0;
17448 struct source_tracking_param sourceTrackingData;
17449
17450 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17451
17452 ret = voc_get_source_tracking(&sourceTrackingData);
17453 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017454 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017455 __func__, ret);
17456
17457 ret = -EINVAL;
17458 goto done;
17459 }
17460 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17461 sizeof(struct source_tracking_param));
17462
17463done:
17464 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017465}
17466
17467static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17468 int *copp_idx)
17469{
17470 int i, idx, be_idx;
17471 int ret = 0;
17472 unsigned long copp;
17473
17474 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17475
17476 ret = q6audio_validate_port(port_id);
17477 if (ret < 0) {
17478 pr_err("%s: port validation failed id 0x%x ret %d\n",
17479 __func__, port_id, ret);
17480
17481 ret = -EINVAL;
17482 goto done;
17483 }
17484
17485 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17486 if (msm_bedais[be_idx].port_id == port_id)
17487 break;
17488 }
17489 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17490 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17491
17492 ret = -EINVAL;
17493 goto done;
17494 }
17495
17496 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
17497 MSM_FRONTEND_DAI_MM_SIZE) {
17498 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17499 copp = session_copp_map[i]
17500 [session_type][be_idx];
17501 if (test_bit(idx, &copp))
17502 break;
17503 }
17504 if (idx >= MAX_COPPS_PER_PORT)
17505 continue;
17506 else
17507 break;
17508 }
17509 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017510 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017511
17512 ret = -EINVAL;
17513 goto done;
17514 }
17515 *copp_idx = idx;
17516 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17517
17518done:
17519 return ret;
17520}
17521
17522static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17523 const char *prefix, int *port_id)
17524{
17525 int ret = 0;
17526
17527 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17528
17529 /*
17530 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17531 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17532 * and compare the string with the backend name to derive the port id.
17533 */
17534 if (!strcmp(kcontrol->id.name + strlen(prefix),
17535 "SLIMBUS_0")) {
17536 *port_id = SLIMBUS_0_TX;
17537 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17538 "TERT_MI2S")) {
17539 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17540 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17541 "INT3_MI2S")) {
17542 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017543 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17544 "VA_CDC_DMA_TX_0")) {
17545 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017546 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17547 "TX_CDC_DMA_TX_3")) {
17548 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017549 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17550 "QUIN_TDM_TX_0")) {
17551 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017552 } else {
17553 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17554 __func__, kcontrol->id.name);
17555
17556 ret = -EINVAL;
17557 goto done;
17558 }
17559 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17560 __func__, kcontrol->id.name, *port_id);
17561
17562done:
17563 return ret;
17564}
17565
17566static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17567 struct snd_ctl_elem_value *ucontrol)
17568{
17569 int ret = 0;
17570 struct sound_focus_param soundFocusData;
17571 int port_id, copp_idx;
17572
17573 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17574 "Sound Focus Audio Tx ", &port_id);
17575 if (ret != 0) {
17576 pr_err("%s: Error in deriving port id, err=%d\n",
17577 __func__, ret);
17578
17579 ret = -EINVAL;
17580 goto done;
17581 }
17582
17583 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17584 &copp_idx);
17585 if (ret) {
17586 pr_err("%s: Could not get copp idx for port_id=%d\n",
17587 __func__, port_id);
17588
17589 ret = -EINVAL;
17590 goto done;
17591 }
17592
17593 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17594 sizeof(struct sound_focus_param));
17595
17596 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17597 if (ret) {
17598 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17599 __func__, ret);
17600
17601 ret = -EINVAL;
17602 goto done;
17603 }
17604
17605done:
17606 return ret;
17607}
17608
17609static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17610 struct snd_ctl_elem_value *ucontrol)
17611{
17612 int ret = 0;
17613 struct sound_focus_param soundFocusData;
17614 int port_id, copp_idx;
17615
17616 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17617 "Sound Focus Audio Tx ", &port_id);
17618 if (ret) {
17619 pr_err("%s: Error in deriving port id, err=%d\n",
17620 __func__, ret);
17621
17622 ret = -EINVAL;
17623 goto done;
17624 }
17625
17626 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17627 &copp_idx);
17628 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017629 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017630 __func__, port_id);
17631
17632 ret = -EINVAL;
17633 goto done;
17634 }
17635
17636 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17637 if (ret) {
17638 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17639 __func__, ret);
17640
17641 ret = -EINVAL;
17642 goto done;
17643 }
17644
17645 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17646 sizeof(struct sound_focus_param));
17647
17648done:
17649 return ret;
17650}
17651
17652static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17653 struct snd_ctl_elem_value *ucontrol)
17654{
17655 int ret = 0;
17656 struct source_tracking_param sourceTrackingData;
17657 int port_id, copp_idx;
17658
17659 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17660 "Source Tracking Audio Tx ", &port_id);
17661 if (ret) {
17662 pr_err("%s: Error in deriving port id, err=%d\n",
17663 __func__, ret);
17664
17665 ret = -EINVAL;
17666 goto done;
17667 }
17668
17669 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17670 &copp_idx);
17671 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017672 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017673 __func__, port_id);
17674
17675 ret = -EINVAL;
17676 goto done;
17677 }
17678
17679 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17680 if (ret) {
17681 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17682 __func__, ret);
17683
17684 ret = -EINVAL;
17685 goto done;
17686 }
17687
17688 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17689 sizeof(struct source_tracking_param));
17690
17691done:
17692 return ret;
17693}
17694
17695static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17696 {
17697 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17698 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17699 .name = "Sound Focus Voice Tx SLIMBUS_0",
17700 .info = msm_sound_focus_info,
17701 .get = msm_voice_sound_focus_get,
17702 .put = msm_voice_sound_focus_put,
17703 },
17704 {
17705 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17706 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17707 .name = "Source Tracking Voice Tx SLIMBUS_0",
17708 .info = msm_source_tracking_info,
17709 .get = msm_voice_source_tracking_get,
17710 },
17711 {
17712 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17713 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17714 .name = "Sound Focus Audio Tx SLIMBUS_0",
17715 .info = msm_sound_focus_info,
17716 .get = msm_audio_sound_focus_get,
17717 .put = msm_audio_sound_focus_put,
17718 },
17719 {
17720 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17721 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17722 .name = "Source Tracking Audio Tx SLIMBUS_0",
17723 .info = msm_source_tracking_info,
17724 .get = msm_audio_source_tracking_get,
17725 },
17726 {
17727 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17728 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17729 .name = "Sound Focus Voice Tx TERT_MI2S",
17730 .info = msm_sound_focus_info,
17731 .get = msm_voice_sound_focus_get,
17732 .put = msm_voice_sound_focus_put,
17733 },
17734 {
17735 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17736 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17737 .name = "Source Tracking Voice Tx TERT_MI2S",
17738 .info = msm_source_tracking_info,
17739 .get = msm_voice_source_tracking_get,
17740 },
17741 {
17742 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17743 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17744 .name = "Sound Focus Audio Tx TERT_MI2S",
17745 .info = msm_sound_focus_info,
17746 .get = msm_audio_sound_focus_get,
17747 .put = msm_audio_sound_focus_put,
17748 },
17749 {
17750 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17751 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17752 .name = "Source Tracking Audio Tx TERT_MI2S",
17753 .info = msm_source_tracking_info,
17754 .get = msm_audio_source_tracking_get,
17755 },
17756 {
17757 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17758 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17759 .name = "Sound Focus Voice Tx INT3_MI2S",
17760 .info = msm_sound_focus_info,
17761 .get = msm_voice_sound_focus_get,
17762 .put = msm_voice_sound_focus_put,
17763 },
17764 {
17765 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17766 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17767 .name = "Source Tracking Voice Tx INT3_MI2S",
17768 .info = msm_source_tracking_info,
17769 .get = msm_voice_source_tracking_get,
17770 },
17771 {
17772 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17773 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17774 .name = "Sound Focus Audio Tx INT3_MI2S",
17775 .info = msm_sound_focus_info,
17776 .get = msm_audio_sound_focus_get,
17777 .put = msm_audio_sound_focus_put,
17778 },
17779 {
17780 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17781 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17782 .name = "Source Tracking Audio Tx INT3_MI2S",
17783 .info = msm_source_tracking_info,
17784 .get = msm_audio_source_tracking_get,
17785 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017786 {
17787 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17788 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17789 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17790 .info = msm_sound_focus_info,
17791 .get = msm_voice_sound_focus_get,
17792 .put = msm_voice_sound_focus_put,
17793 },
17794 {
17795 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17796 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17797 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17798 .info = msm_source_tracking_info,
17799 .get = msm_voice_source_tracking_get,
17800 },
17801 {
17802 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17803 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17804 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17805 .info = msm_sound_focus_info,
17806 .get = msm_audio_sound_focus_get,
17807 .put = msm_audio_sound_focus_put,
17808 },
17809 {
17810 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17811 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17812 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17813 .info = msm_source_tracking_info,
17814 .get = msm_audio_source_tracking_get,
17815 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017816 {
17817 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17818 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17819 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17820 .info = msm_sound_focus_info,
17821 .get = msm_voice_sound_focus_get,
17822 .put = msm_voice_sound_focus_put,
17823 },
17824 {
17825 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17826 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17827 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17828 .info = msm_source_tracking_info,
17829 .get = msm_voice_source_tracking_get,
17830 },
17831 {
17832 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17833 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17834 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17835 .info = msm_sound_focus_info,
17836 .get = msm_audio_sound_focus_get,
17837 .put = msm_audio_sound_focus_put,
17838 },
17839 {
17840 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17841 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17842 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17843 .info = msm_source_tracking_info,
17844 .get = msm_audio_source_tracking_get,
17845 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017846 {
17847 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17848 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17849 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
17850 .info = msm_sound_focus_info,
17851 .get = msm_voice_sound_focus_get,
17852 .put = msm_voice_sound_focus_put,
17853 },
17854 {
17855 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17856 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17857 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
17858 .info = msm_source_tracking_info,
17859 .get = msm_voice_source_tracking_get,
17860 },
17861 {
17862 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17863 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17864 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
17865 .info = msm_sound_focus_info,
17866 .get = msm_audio_sound_focus_get,
17867 .put = msm_audio_sound_focus_put,
17868 },
17869 {
17870 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17871 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17872 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
17873 .info = msm_source_tracking_info,
17874 .get = msm_audio_source_tracking_get,
17875 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017876};
17877
17878static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17879 struct snd_ctl_elem_value *ucontrol)
17880{
17881 int ret = 0;
17882 int item;
17883 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17884
17885 pr_debug("%s item is %d\n", __func__,
17886 ucontrol->value.enumerated.item[0]);
17887 mutex_lock(&routing_lock);
17888 item = ucontrol->value.enumerated.item[0];
17889 if (item < e->items) {
17890 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17891 __func__, e->shift_l, e->values[item]);
17892 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17893 e->values[item] < MSM_BACKEND_DAI_MAX)
17894 /* Enable feedback TX path */
17895 ret = afe_spk_prot_feed_back_cfg(
17896 msm_bedais[e->values[item]].port_id,
17897 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17898 else {
17899 pr_debug("%s values are out of range item %d\n",
17900 __func__, e->values[item]);
17901 /* Disable feedback TX path */
17902 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17903 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17904 else
17905 ret = -EINVAL;
17906 }
17907 } else {
17908 pr_err("%s item value is out of range item\n", __func__);
17909 ret = -EINVAL;
17910 }
17911 mutex_unlock(&routing_lock);
17912 return ret;
17913}
17914
17915static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17916 struct snd_ctl_elem_value *ucontrol)
17917{
17918 int ret = 0;
17919 int item;
17920 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17921
17922 pr_debug("%s item is %d\n", __func__,
17923 ucontrol->value.enumerated.item[0]);
17924 mutex_lock(&routing_lock);
17925 item = ucontrol->value.enumerated.item[0];
17926 if (item < e->items) {
17927 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17928 __func__, e->shift_l, e->values[item]);
17929 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17930 e->values[item] < MSM_BACKEND_DAI_MAX)
17931 /* Enable feedback TX path */
17932 ret = afe_spk_prot_feed_back_cfg(
17933 msm_bedais[e->values[item]].port_id,
17934 msm_bedais[e->shift_l].port_id,
17935 1, 1, 1);
17936 else {
17937 pr_debug("%s values are out of range item %d\n",
17938 __func__, e->values[item]);
17939 /* Disable feedback TX path */
17940 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17941 ret = afe_spk_prot_feed_back_cfg(0,
17942 0, 0, 0, 0);
17943 else
17944 ret = -EINVAL;
17945 }
17946 } else {
17947 pr_err("%s item value is out of range item\n", __func__);
17948 ret = -EINVAL;
17949 }
17950 mutex_unlock(&routing_lock);
17951 return ret;
17952}
17953
17954static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17955 struct snd_ctl_elem_value *ucontrol)
17956{
17957 pr_debug("%s\n", __func__);
17958 return 0;
17959}
17960
17961static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17962 struct snd_ctl_elem_value *ucontrol)
17963{
17964 pr_debug("%s\n", __func__);
17965 ucontrol->value.enumerated.item[0] = 0;
17966 return 0;
17967}
17968
17969static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17970 "ZERO", "SLIM4_TX"
17971};
17972
17973static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17974 "ZERO", "SLIM4_TX"
17975};
17976
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017977static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17978 "ZERO", "WSA_CDC_DMA_TX_0"
17979};
17980
17981static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17982 "ZERO", "WSA_CDC_DMA_TX_0"
17983};
17984
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017985static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17986 "ZERO", "SENARY_TX"
17987};
17988
17989static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17990 "ZERO", "INT5_MI2S_TX"
17991};
17992
17993static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17994 "ZERO", "INT5_MI2S_TX"
17995};
17996
17997static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17998 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17999};
18000
18001static const int const slim0_rx_vi_fb_tx_rch_value[] = {
18002 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18003};
18004
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018005static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
18006 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18007};
18008
18009static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
18010 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18011};
18012
18013
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018014static const int const mi2s_rx_vi_fb_tx_value[] = {
18015 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18016};
18017
18018static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
18019 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18020};
18021
18022static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
18023 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18024};
18025
18026static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18027 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18028 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18029 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18030
18031static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18032 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18033 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18034 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18035
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018036static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18037 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18038 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18039 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18040
18041static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18042 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18043 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18044 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18045
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018046static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18047 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18048 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18049 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18050
18051static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18052 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18053 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18054 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18055 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18056
18057static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18058 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18059 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18060 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18061 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18062
18063static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18064 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18065 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18066 spkr_prot_put_vi_lch_port);
18067
18068static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18069 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18070 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18071 spkr_prot_put_vi_rch_port);
18072
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018073static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18074 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18075 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18076 spkr_prot_put_vi_lch_port);
18077
18078static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18079 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18080 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18081 spkr_prot_put_vi_rch_port);
18082
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018083static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18084 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18085 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18086 spkr_prot_put_vi_lch_port);
18087
18088static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18089 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18090 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18091 spkr_prot_put_vi_lch_port);
18092
18093static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18094 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18095 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18096 spkr_prot_put_vi_rch_port);
18097
18098static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18099 /* Frontend AIF */
18100 /* Widget name equals to Front-End DAI name<Need confirmation>,
18101 * Stream name must contains substring of front-end dai name
18102 */
18103 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18104 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18105 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18106 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18107 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18108 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18109 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18110 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18111 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18112 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18113 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18114 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18115 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18116 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18117 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18118 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18119 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018120 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018121 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018122 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18123 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18124 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18125 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18126 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18127 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18128 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18129 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18130 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018131 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018132 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018133 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18134 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18135 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18136 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018137 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018138 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018139 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18140 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018141 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18142 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18143 "VoiceMMode1 Playback", 0, 0, 0, 0),
18144 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18145 "VoiceMMode1 Capture", 0, 0, 0, 0),
18146 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18147 "VoiceMMode2 Playback", 0, 0, 0, 0),
18148 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18149 "VoiceMMode2 Capture", 0, 0, 0, 0),
18150 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18151 0, 0, 0, 0),
18152 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18153 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018154 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18155 0, 0, 0, 0),
18156 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18157 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018158 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18159 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018160 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18161 0, 0, 0, 0),
18162 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18163 0, 0, 0, 0),
18164 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18165 0, 0, 0, 0),
18166 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18167 0, 0, 0, 0),
18168 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18169 0, 0, 0, 0),
18170 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18171 0, 0, 0, 0),
18172 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18173 0, 0, 0, 0),
18174 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18175 0, 0, 0, 0),
18176 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18177 0, 0, 0, 0),
18178 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18179 0, 0, 0, 0),
18180 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18181 0, 0, 0, 0),
18182 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18183 0, 0, 0, 0),
18184 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18185 0, 0, 0, 0),
18186 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18187 0, 0, 0, 0),
18188 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18189 0, 0, 0, 0),
18190 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18191 0, 0, 0, 0),
18192 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18193 0, 0, 0, 0),
18194 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18195 0, 0, 0, 0),
18196 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18197 0, 0, 0, 0),
18198 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18199 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18200 0, 0, 0, 0),
18201 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18202 "INT0 MI2S_RX Hostless Playback",
18203 0, 0, 0, 0),
18204 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18205 "INT4 MI2S_RX Hostless Playback",
18206 0, 0, 0, 0),
18207 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18208 "Primary MI2S_RX Hostless Playback",
18209 0, 0, 0, 0),
18210 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18211 "Secondary MI2S_RX Hostless Playback",
18212 0, 0, 0, 0),
18213 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18214 "Tertiary MI2S_RX Hostless Playback",
18215 0, 0, 0, 0),
18216 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18217 "Quaternary MI2S_RX Hostless Playback",
18218 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018219 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18220 "Quinary MI2S_RX Hostless Playback",
18221 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018222
18223 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18224 0, 0, 0, 0),
18225 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18226 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018227 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18228 0, 0, 0, 0),
18229 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18230 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018231 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18232 0, 0, 0, 0),
18233 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18234 "INT3 MI2S_TX Hostless Capture",
18235 0, 0, 0, 0),
18236 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18237 "Tertiary MI2S_TX Hostless Capture",
18238 0, 0, 0, 0),
18239 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18240 "Secondary MI2S_TX Hostless Capture",
18241 0, 0, 0, 0),
18242 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18243 "Primary MI2S_TX Hostless Capture",
18244 0, 0, 0, 0),
18245 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18246 0, 0, 0, 0),
18247 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18248 0, 0, 0, 0),
18249 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18250 "Quaternary MI2S_TX Hostless Capture",
18251 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018252 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18253 "Quinary MI2S_TX Hostless Capture",
18254 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018255
18256 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18257 "Primary TDM0 Hostless Playback",
18258 0, 0, 0, 0),
18259 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18260 "Primary TDM0 Hostless Capture",
18261 0, 0, 0, 0),
18262 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18263 "Primary TDM1 Hostless Playback",
18264 0, 0, 0, 0),
18265 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18266 "Primary TDM1 Hostless Capture",
18267 0, 0, 0, 0),
18268 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18269 "Primary TDM2 Hostless Playback",
18270 0, 0, 0, 0),
18271 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18272 "Primary TDM2 Hostless Capture",
18273 0, 0, 0, 0),
18274 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18275 "Primary TDM3 Hostless Playback",
18276 0, 0, 0, 0),
18277 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18278 "Primary TDM3 Hostless Capture",
18279 0, 0, 0, 0),
18280 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18281 "Primary TDM4 Hostless Playback",
18282 0, 0, 0, 0),
18283 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18284 "Primary TDM4 Hostless Capture",
18285 0, 0, 0, 0),
18286 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18287 "Primary TDM5 Hostless Playback",
18288 0, 0, 0, 0),
18289 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18290 "Primary TDM5 Hostless Capture",
18291 0, 0, 0, 0),
18292 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18293 "Primary TDM6 Hostless Playback",
18294 0, 0, 0, 0),
18295 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18296 "Primary TDM6 Hostless Capture",
18297 0, 0, 0, 0),
18298 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18299 "Primary TDM7 Hostless Playback",
18300 0, 0, 0, 0),
18301 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18302 "Primary TDM7 Hostless Capture",
18303 0, 0, 0, 0),
18304 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18305 "Secondary TDM0 Hostless Playback",
18306 0, 0, 0, 0),
18307 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18308 "Secondary TDM0 Hostless Capture",
18309 0, 0, 0, 0),
18310 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18311 "Secondary TDM1 Hostless Playback",
18312 0, 0, 0, 0),
18313 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18314 "Secondary TDM1 Hostless Capture",
18315 0, 0, 0, 0),
18316 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18317 "Secondary TDM2 Hostless Playback",
18318 0, 0, 0, 0),
18319 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18320 "Secondary TDM2 Hostless Capture",
18321 0, 0, 0, 0),
18322 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18323 "Secondary TDM3 Hostless Playback",
18324 0, 0, 0, 0),
18325 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18326 "Secondary TDM3 Hostless Capture",
18327 0, 0, 0, 0),
18328 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18329 "Secondary TDM4 Hostless Playback",
18330 0, 0, 0, 0),
18331 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18332 "Secondary TDM4 Hostless Capture",
18333 0, 0, 0, 0),
18334 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18335 "Secondary TDM5 Hostless Playback",
18336 0, 0, 0, 0),
18337 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18338 "Secondary TDM5 Hostless Capture",
18339 0, 0, 0, 0),
18340 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18341 "Secondary TDM6 Hostless Playback",
18342 0, 0, 0, 0),
18343 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18344 "Secondary TDM6 Hostless Capture",
18345 0, 0, 0, 0),
18346 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18347 "Secondary TDM7 Hostless Playback",
18348 0, 0, 0, 0),
18349 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18350 "Secondary TDM7 Hostless Capture",
18351 0, 0, 0, 0),
18352 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18353 "Tertiary TDM0 Hostless Playback",
18354 0, 0, 0, 0),
18355 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18356 "Tertiary TDM0 Hostless Capture",
18357 0, 0, 0, 0),
18358 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18359 "Tertiary TDM1 Hostless Playback",
18360 0, 0, 0, 0),
18361 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18362 "Tertiary TDM1 Hostless Capture",
18363 0, 0, 0, 0),
18364 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18365 "Tertiary TDM2 Hostless Playback",
18366 0, 0, 0, 0),
18367 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18368 "Tertiary TDM2 Hostless Capture",
18369 0, 0, 0, 0),
18370 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18371 "Tertiary TDM3 Hostless Playback",
18372 0, 0, 0, 0),
18373 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18374 "Tertiary TDM3 Hostless Capture",
18375 0, 0, 0, 0),
18376 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18377 "Tertiary TDM4 Hostless Playback",
18378 0, 0, 0, 0),
18379 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18380 "Tertiary TDM4 Hostless Capture",
18381 0, 0, 0, 0),
18382 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18383 "Tertiary TDM5 Hostless Playback",
18384 0, 0, 0, 0),
18385 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18386 "Tertiary TDM5 Hostless Capture",
18387 0, 0, 0, 0),
18388 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18389 "Tertiary TDM6 Hostless Playback",
18390 0, 0, 0, 0),
18391 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18392 "Tertiary TDM6 Hostless Capture",
18393 0, 0, 0, 0),
18394 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18395 "Tertiary TDM7 Hostless Playback",
18396 0, 0, 0, 0),
18397 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18398 "Tertiary TDM7 Hostless Capture",
18399 0, 0, 0, 0),
18400 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18401 "Quaternary TDM0 Hostless Playback",
18402 0, 0, 0, 0),
18403 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18404 "Quaternary TDM0 Hostless Capture",
18405 0, 0, 0, 0),
18406 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18407 "Quaternary TDM1 Hostless Playback",
18408 0, 0, 0, 0),
18409 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18410 "Quaternary TDM1 Hostless Capture",
18411 0, 0, 0, 0),
18412 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18413 "Quaternary TDM2 Hostless Playback",
18414 0, 0, 0, 0),
18415 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18416 "Quaternary TDM2 Hostless Capture",
18417 0, 0, 0, 0),
18418 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18419 "Quaternary TDM3 Hostless Playback",
18420 0, 0, 0, 0),
18421 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18422 "Quaternary TDM3 Hostless Capture",
18423 0, 0, 0, 0),
18424 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18425 "Quaternary TDM4 Hostless Playback",
18426 0, 0, 0, 0),
18427 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18428 "Quaternary TDM4 Hostless Capture",
18429 0, 0, 0, 0),
18430 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18431 "Quaternary TDM5 Hostless Playback",
18432 0, 0, 0, 0),
18433 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18434 "Quaternary TDM5 Hostless Capture",
18435 0, 0, 0, 0),
18436 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18437 "Quaternary TDM6 Hostless Playback",
18438 0, 0, 0, 0),
18439 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18440 "Quaternary TDM6 Hostless Capture",
18441 0, 0, 0, 0),
18442 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18443 "Quaternary TDM7 Hostless Playback",
18444 0, 0, 0, 0),
18445 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18446 "Quaternary TDM7 Hostless Capture",
18447 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018448 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18449 "Quinary TDM0 Hostless Playback",
18450 0, 0, 0, 0),
18451 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18452 "Quinary TDM0 Hostless Capture",
18453 0, 0, 0, 0),
18454 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18455 "Quinary TDM1 Hostless Playback",
18456 0, 0, 0, 0),
18457 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18458 "Quinary TDM1 Hostless Capture",
18459 0, 0, 0, 0),
18460 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18461 "Quinary TDM2 Hostless Playback",
18462 0, 0, 0, 0),
18463 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18464 "Quinary TDM2 Hostless Capture",
18465 0, 0, 0, 0),
18466 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18467 "Quinary TDM3 Hostless Playback",
18468 0, 0, 0, 0),
18469 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18470 "Quinary TDM3 Hostless Capture",
18471 0, 0, 0, 0),
18472 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18473 "Quinary TDM4 Hostless Playback",
18474 0, 0, 0, 0),
18475 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18476 "Quinary TDM4 Hostless Capture",
18477 0, 0, 0, 0),
18478 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18479 "Quinary TDM5 Hostless Playback",
18480 0, 0, 0, 0),
18481 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18482 "Quinary TDM5 Hostless Capture",
18483 0, 0, 0, 0),
18484 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18485 "Quinary TDM6 Hostless Playback",
18486 0, 0, 0, 0),
18487 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18488 "Quinary TDM6 Hostless Capture",
18489 0, 0, 0, 0),
18490 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18491 "Quinary TDM7 Hostless Playback",
18492 0, 0, 0, 0),
18493 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18494 "Quinary TDM7 Hostless Capture",
18495 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018496
18497 /* LSM */
18498 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18499 0, 0, 0, 0),
18500 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18501 0, 0, 0, 0),
18502 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18503 0, 0, 0, 0),
18504 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18505 0, 0, 0, 0),
18506 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18507 0, 0, 0, 0),
18508 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18509 0, 0, 0, 0),
18510 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18511 0, 0, 0, 0),
18512 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18513 0, 0, 0, 0),
18514 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18515 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18516 /* Backend AIF */
18517 /* Stream name equals to backend dai link stream name */
18518 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18519 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18520 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018521 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18522 0, 0, 0, 0),
18523 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18524 0, 0, 0, 0),
18525 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18526 0, 0, 0, 0),
18527 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18528 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018529 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18530 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18531 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18532 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18533 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18534 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018535 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18536 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018537 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18538 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18539 0, 0, 0, 0),
18540 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18541 0, 0, 0, 0),
18542 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18543 0, 0, 0, 0),
18544 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18545 "Secondary MI2S Playback SD1",
18546 0, 0, 0, 0),
18547 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18548 0, 0, 0, 0),
18549 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18550 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018551 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18552 0, 0, 0, 0),
18553 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18554 0, 0, 0, 0),
18555 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18556 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018557 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18558 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018559 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18560 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018561 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18562 0, 0, 0, 0),
18563 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18564 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18565 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18566 0, 0, 0, 0),
18567 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18568 0, 0, 0, 0),
18569 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18570 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018571 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18572 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018573 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18574 0, 0, 0, 0),
18575 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18576 0, 0, 0, 0),
18577 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18578 0, 0, 0, 0),
18579 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18580 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18581 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18582 0, 0, 0, 0),
18583 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18584 0, 0, 0, 0),
18585 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18586 0, 0, 0, 0),
18587 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18588 0, 0, 0, 0),
18589 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18590 0, 0, 0, 0),
18591 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18592 0, 0, 0, 0),
18593 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18594 0, 0, 0, 0),
18595 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18596 0, 0, 0, 0),
18597 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18598 0, 0, 0, 0),
18599 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18600 0, 0, 0, 0),
18601 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18602 0, 0, 0, 0),
18603 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18604 0, 0, 0, 0),
18605 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18606 0, 0, 0, 0),
18607 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18608 0, 0, 0, 0),
18609 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18610 0, 0, 0, 0),
18611 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18612 0, 0, 0, 0),
18613 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18614 0, 0, 0, 0),
18615 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18616 0, 0, 0, 0),
18617 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18618 0, 0, 0, 0),
18619 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18620 0, 0, 0, 0),
18621 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18622 0, 0, 0, 0),
18623 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18624 0, 0, 0, 0),
18625 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18626 0, 0, 0, 0),
18627 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18628 0, 0, 0, 0),
18629 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18630 0, 0, 0, 0),
18631 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18632 0, 0, 0, 0),
18633 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18634 0, 0, 0, 0),
18635 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18636 0, 0, 0, 0),
18637 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18638 0, 0, 0, 0),
18639 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18640 0, 0, 0, 0),
18641 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18642 0, 0, 0, 0),
18643 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18644 0, 0, 0, 0),
18645 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18646 0, 0, 0, 0),
18647 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18648 0, 0, 0, 0),
18649 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18650 0, 0, 0, 0),
18651 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18652 0, 0, 0, 0),
18653 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18654 0, 0, 0, 0),
18655 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18656 0, 0, 0, 0),
18657 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18658 0, 0, 0, 0),
18659 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18660 0, 0, 0, 0),
18661 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18662 0, 0, 0, 0),
18663 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18664 0, 0, 0, 0),
18665 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18666 0, 0, 0, 0),
18667 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18668 0, 0, 0, 0),
18669 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18670 0, 0, 0, 0),
18671 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18672 0, 0, 0, 0),
18673 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18674 0, 0, 0, 0),
18675 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18676 0, 0, 0, 0),
18677 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18678 0, 0, 0, 0),
18679 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18680 0, 0, 0, 0),
18681 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18682 0, 0, 0, 0),
18683 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18684 0, 0, 0, 0),
18685 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18686 0, 0, 0, 0),
18687 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18688 0, 0, 0, 0),
18689 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18690 0, 0, 0, 0),
18691 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18692 0, 0, 0, 0),
18693 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18694 0, 0, 0, 0),
18695 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18696 0, 0, 0, 0),
18697 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18698 0, 0, 0, 0),
18699 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18700 0, 0, 0, 0),
18701 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18702 0, 0, 0, 0),
18703 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18704 0, 0, 0, 0),
18705 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18706 0, 0, 0, 0),
18707 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18708 0, 0, 0, 0),
18709 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18710 0, 0, 0, 0),
18711 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18712 0, 0, 0, 0),
18713 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18714 0, 0, 0, 0),
18715 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18716 0, 0, 0, 0),
18717 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18718 0, 0, 0, 0),
18719 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18720 0, 0, 0, 0),
18721 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18722 0, 0, 0, 0),
18723 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18724 0, 0, 0, 0),
18725 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18726 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018727 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18728 0, 0, 0, 0),
18729 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18730 0, 0, 0, 0),
18731 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18732 0, 0, 0, 0),
18733 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18734 0, 0, 0, 0),
18735 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18736 0, 0, 0, 0),
18737 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18738 0, 0, 0, 0),
18739 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18740 0, 0, 0, 0),
18741 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18742 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18744 0, 0, 0, 0),
18745 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18746 0, 0, 0, 0),
18747 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18748 0, 0, 0, 0),
18749 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18750 0, 0, 0, 0),
18751 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18752 0, 0, 0, 0),
18753 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18754 0, 0, 0, 0),
18755 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18756 0, 0, 0, 0),
18757 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18758 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018759 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18760 0, 0, 0, 0),
18761 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18762 0, 0, 0, 0),
18763 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18764 0, 0, 0, 0),
18765 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18766 0, 0, 0, 0),
18767 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18768 0, 0, 0, 0),
18769 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18770 0, 0, 0, 0),
18771 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18772 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018773 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18774 0, 0, 0, 0),
18775 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18776 0, 0, 0, 0),
18777 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18778 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18780 0, 0, 0, 0),
18781 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18782 0, 0, 0, 0),
18783 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18784 0, 0, 0, 0),
18785 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18786 0, 0, 0, 0),
18787 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18788 0, 0, 0, 0),
18789 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18790 0, 0, 0, 0),
18791 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18792 0, 0, 0, 0),
18793 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18794 0, 0, 0, 0),
18795 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18796 0, 0, 0, 0),
18797 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18798 0, 0, 0, 0),
18799 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18800 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018801 /* incall */
18802 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18803 0, 0, 0, 0),
18804 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18805 0, 0, 0, 0),
18806 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18807 0, 0, 0, 0),
18808 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18809 0, 0, 0, 0),
18810 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18811 0, 0, 0, 0),
18812 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18813 0, 0, 0, 0),
18814 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18815 0, 0, 0, 0),
18816 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18817 0, 0, 0, 0),
18818 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18819
18820 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18821 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18822 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18823 0, 0, 0, 0),
18824 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18825 0, 0, 0, 0),
18826 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18827 0, 0, 0, 0),
18828 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18829 0, 0, 0, 0),
18830 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18831 0, 0, 0, 0),
18832 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18833 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018834 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18835 0, 0, 0, 0),
18836 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18837 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018838 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18839 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18840 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18841 0, 0, 0, 0),
18842 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18843 0, 0, 0, 0),
18844 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18845 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18846 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18847 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18848 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18849 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18850 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18851 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18852 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18853 /* In- call recording */
18854 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18855 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
18856
18857 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18858 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18859
18860 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18861 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053018862 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
18863 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018864 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18865 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18866
18867 /* Switch Definitions */
18868 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18869 &slim_fm_switch_mixer_controls),
18870 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18871 &slim1_fm_switch_mixer_controls),
18872 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18873 &slim3_fm_switch_mixer_controls),
18874 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18875 &slim4_fm_switch_mixer_controls),
18876 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18877 &slim6_fm_switch_mixer_controls),
18878 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18879 &pcm_rx_switch_mixer_controls),
18880 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18881 &int0_mi2s_rx_switch_mixer_controls),
18882 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18883 &int4_mi2s_rx_switch_mixer_controls),
18884 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18885 &pri_mi2s_rx_switch_mixer_controls),
18886 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18887 &sec_mi2s_rx_switch_mixer_controls),
18888 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18889 &tert_mi2s_rx_switch_mixer_controls),
18890 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18891 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018892 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18893 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018894 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18895 &hfp_pri_aux_switch_mixer_controls),
18896 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18897 &hfp_aux_switch_mixer_controls),
18898 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18899 &hfp_int_switch_mixer_controls),
18900 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18901 &hfp_slim7_switch_mixer_controls),
18902 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18903 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018904 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18905 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018906 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018907 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018908 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018909 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018910
18911 /* Mixer definitions */
18912 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18913 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18914 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18915 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18916 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18917 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18918 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18919 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18920 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18921 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18922 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18923 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053018924 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18925 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018926 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18927 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18928 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18929 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018930 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18931 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018932 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18933 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18934 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18935 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018936 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18937 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18938 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18939 quaternary_mi2s_rx_mixer_controls,
18940 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18941 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18942 tertiary_mi2s_rx_mixer_controls,
18943 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18944 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18945 secondary_mi2s_rx_mixer_controls,
18946 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18947 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18948 secondary_mi2s_rx2_mixer_controls,
18949 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18950 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18951 primary_mi2s_rx_mixer_controls,
18952 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18953 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18954 int0_mi2s_rx_mixer_controls,
18955 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18956 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18957 int4_mi2s_rx_mixer_controls,
18958 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18959 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18960 quinary_mi2s_rx_mixer_controls,
18961 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18962 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18963 pri_tdm_rx_0_mixer_controls,
18964 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18965 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18966 pri_tdm_rx_1_mixer_controls,
18967 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18968 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18969 pri_tdm_rx_2_mixer_controls,
18970 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18971 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18972 pri_tdm_rx_3_mixer_controls,
18973 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18974 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18975 pri_tdm_tx_0_mixer_controls,
18976 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18977 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18978 sec_tdm_rx_0_mixer_controls,
18979 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18980 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18981 sec_tdm_rx_1_mixer_controls,
18982 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18983 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18984 sec_tdm_rx_2_mixer_controls,
18985 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18986 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18987 sec_tdm_rx_3_mixer_controls,
18988 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18989 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18990 sec_tdm_tx_0_mixer_controls,
18991 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18992 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18993 tert_tdm_rx_0_mixer_controls,
18994 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18995 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18996 tert_tdm_tx_0_mixer_controls,
18997 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18998 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18999 tert_tdm_rx_1_mixer_controls,
19000 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19001 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19002 tert_tdm_rx_2_mixer_controls,
19003 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19004 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19005 tert_tdm_rx_3_mixer_controls,
19006 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19007 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19008 tert_tdm_rx_4_mixer_controls,
19009 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19010 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19011 quat_tdm_rx_0_mixer_controls,
19012 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19013 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19014 quat_tdm_tx_0_mixer_controls,
19015 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19016 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19017 quat_tdm_rx_1_mixer_controls,
19018 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19019 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19020 quat_tdm_rx_2_mixer_controls,
19021 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19022 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19023 quat_tdm_rx_3_mixer_controls,
19024 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019025 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19026 quin_tdm_rx_0_mixer_controls,
19027 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19028 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19029 quin_tdm_tx_0_mixer_controls,
19030 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19031 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19032 quin_tdm_rx_1_mixer_controls,
19033 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19034 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19035 quin_tdm_rx_2_mixer_controls,
19036 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19037 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19038 quin_tdm_rx_3_mixer_controls,
19039 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019040 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19041 wsa_cdc_dma_rx_0_mixer_controls,
19042 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19043 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19044 wsa_cdc_dma_rx_1_mixer_controls,
19045 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019046 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19047 rx_cdc_dma_rx_0_mixer_controls,
19048 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19049 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19050 rx_cdc_dma_rx_1_mixer_controls,
19051 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19052 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19053 rx_cdc_dma_rx_2_mixer_controls,
19054 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19055 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19056 rx_cdc_dma_rx_3_mixer_controls,
19057 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19058 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19059 rx_cdc_dma_rx_4_mixer_controls,
19060 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19061 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19062 rx_cdc_dma_rx_5_mixer_controls,
19063 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19064 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19065 rx_cdc_dma_rx_6_mixer_controls,
19066 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19067 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19068 rx_cdc_dma_rx_7_mixer_controls,
19069 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019070 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19071 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19072 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19073 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19074 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19075 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19076 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19077 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19078 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19079 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19080 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19081 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19082 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19083 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19084 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19085 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019086 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19087 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019088 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19089 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019090 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19091 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19092 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19093 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19094 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19095 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19096 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19097 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019098 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19099 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019100 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19101 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019102 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19103 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19104 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19105 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019106 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19107 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19108 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19109 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19110 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19111 tert_auxpcm_rx_mixer_controls,
19112 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19113 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19114 quat_auxpcm_rx_mixer_controls,
19115 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019116 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19117 quin_auxpcm_rx_mixer_controls,
19118 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019119 /* incall */
19120 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19121 incall_music_delivery_mixer_controls,
19122 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19123 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19124 incall_music2_delivery_mixer_controls,
19125 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19126 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19127 slimbus_4_rx_mixer_controls,
19128 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19129 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19130 slimbus_6_rx_mixer_controls,
19131 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19132 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19133 usb_audio_rx_mixer_controls,
19134 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19135 /* Voice Mixer */
19136 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19137 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19138 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19139 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19140 SND_SOC_NOPM, 0, 0,
19141 sec_i2s_rx_voice_mixer_controls,
19142 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19143 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19144 SND_SOC_NOPM, 0, 0,
19145 sec_mi2s_rx_voice_mixer_controls,
19146 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19147 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19148 SND_SOC_NOPM, 0, 0,
19149 slimbus_rx_voice_mixer_controls,
19150 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19151 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19152 SND_SOC_NOPM, 0, 0,
19153 bt_sco_rx_voice_mixer_controls,
19154 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19155 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19156 SND_SOC_NOPM, 0, 0,
19157 afe_pcm_rx_voice_mixer_controls,
19158 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19159 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19160 SND_SOC_NOPM, 0, 0,
19161 aux_pcm_rx_voice_mixer_controls,
19162 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19163 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19164 SND_SOC_NOPM, 0, 0,
19165 sec_aux_pcm_rx_voice_mixer_controls,
19166 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19167 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19168 SND_SOC_NOPM, 0, 0,
19169 tert_aux_pcm_rx_voice_mixer_controls,
19170 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19171 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19172 SND_SOC_NOPM, 0, 0,
19173 quat_aux_pcm_rx_voice_mixer_controls,
19174 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019175 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19176 SND_SOC_NOPM, 0, 0,
19177 quin_aux_pcm_rx_voice_mixer_controls,
19178 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019179 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19180 SND_SOC_NOPM, 0, 0,
19181 hdmi_rx_voice_mixer_controls,
19182 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19183 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19184 SND_SOC_NOPM, 0, 0,
19185 mi2s_rx_voice_mixer_controls,
19186 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19187 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19188 SND_SOC_NOPM, 0, 0,
19189 pri_mi2s_rx_voice_mixer_controls,
19190 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19191 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19192 SND_SOC_NOPM, 0, 0,
19193 int0_mi2s_rx_voice_mixer_controls,
19194 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19195 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19196 SND_SOC_NOPM, 0, 0,
19197 int4_mi2s_rx_voice_mixer_controls,
19198 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19199 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19200 SND_SOC_NOPM, 0, 0,
19201 tert_mi2s_rx_voice_mixer_controls,
19202 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19203 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19204 SND_SOC_NOPM, 0, 0,
19205 quat_mi2s_rx_voice_mixer_controls,
19206 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19207 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19208 SND_SOC_NOPM, 0, 0,
19209 quin_mi2s_rx_voice_mixer_controls,
19210 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19211 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19212 SND_SOC_NOPM, 0, 0,
19213 quat_tdm_rx_2_voice_mixer_controls,
19214 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019215 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19216 SND_SOC_NOPM, 0, 0,
19217 wsa_cdc_dma_rx_0_voice_mixer_controls,
19218 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19219 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19220 SND_SOC_NOPM, 0, 0,
19221 rx_cdc_dma_rx_0_voice_mixer_controls,
19222 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019223 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19224 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19225 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019226 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19227 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19228 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19229 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19230 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19231 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19232 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19233 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19234 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19235 int_bt_a2dp_rx_mixer_controls,
19236 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19237 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19238 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19239 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19240 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19241 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19242 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19243 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19244 tx_voice2_stub_mixer_controls,
19245 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19246 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19247 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19248 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19249 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19250 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19251 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19252 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19253 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19254 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19255 SND_SOC_NOPM, 0, 0,
19256 slimbus_6_rx_voice_mixer_controls,
19257 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19258 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19259 slimbus_7_rx_voice_mixer_controls,
19260 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19261 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19262 slimbus_8_rx_voice_mixer_controls,
19263 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19264 /* port mixer */
19265 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19266 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19267 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19268 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19269 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19270 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19271 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19272 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19273 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19274 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19275 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19276 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19277 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19278 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19279 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019280 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19281 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19282 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019283 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19284 sbus_1_rx_port_mixer_controls,
19285 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19286 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19287 bt_sco_rx_port_mixer_controls,
19288 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19289 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19290 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19291 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19292 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19293 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19294 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19295 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19296 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19297 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019298 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019299 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19300 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019301 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19302 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19303 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19304 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19305 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19306 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19307 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19308 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19309 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19310 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19311 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19312 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19313 primary_mi2s_rx_port_mixer_controls,
19314 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19315 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19316 sec_mi2s_rx_port_mixer_controls,
19317 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19318 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19319 tert_mi2s_rx_port_mixer_controls,
19320 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19321 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19322 quat_mi2s_rx_port_mixer_controls,
19323 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019324 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19325 quin_mi2s_rx_port_mixer_controls,
19326 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019327 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19328 pri_tdm_rx_0_port_mixer_controls,
19329 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19330 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19331 pri_tdm_rx_1_port_mixer_controls,
19332 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19333 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19334 pri_tdm_rx_2_port_mixer_controls,
19335 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19336 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19337 pri_tdm_rx_3_port_mixer_controls,
19338 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19339 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19340 sec_tdm_rx_0_port_mixer_controls,
19341 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19342 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19343 sec_tdm_rx_1_port_mixer_controls,
19344 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19345 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19346 sec_tdm_rx_2_port_mixer_controls,
19347 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19348 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19349 sec_tdm_rx_3_port_mixer_controls,
19350 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019351 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19352 sec_tdm_rx_7_port_mixer_controls,
19353 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019354 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19355 tert_tdm_rx_0_port_mixer_controls,
19356 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19357 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19358 tert_tdm_rx_1_port_mixer_controls,
19359 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19360 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19361 tert_tdm_rx_2_port_mixer_controls,
19362 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19363 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19364 tert_tdm_rx_3_port_mixer_controls,
19365 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19366 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19367 quat_tdm_rx_0_port_mixer_controls,
19368 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19369 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19370 quat_tdm_rx_1_port_mixer_controls,
19371 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19372 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19373 quat_tdm_rx_2_port_mixer_controls,
19374 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19375 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19376 quat_tdm_rx_3_port_mixer_controls,
19377 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019378 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19379 quin_tdm_rx_0_port_mixer_controls,
19380 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19381 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19382 quin_tdm_rx_1_port_mixer_controls,
19383 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19384 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19385 quin_tdm_rx_2_port_mixer_controls,
19386 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19387 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19388 quin_tdm_rx_3_port_mixer_controls,
19389 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019390 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19391 int0_mi2s_rx_port_mixer_controls,
19392 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19393 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19394 int4_mi2s_rx_port_mixer_controls,
19395 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019396 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19397 wsa_cdc_dma_rx_0_port_mixer_controls,
19398 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19399 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19400 rx_cdc_dma_rx_0_port_mixer_controls,
19401 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019402 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19403 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19404 ARRAY_SIZE(tx_qchat_mixer_controls)),
19405 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19406 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19407 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19408 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19409 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19410 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019411 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19412 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19413 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019414 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19415 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19416 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019417 /* lsm mixer definitions */
19418 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19419 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19420 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19421 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19422 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19423 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19424 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19425 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19426 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19427 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19428 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19429 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19430 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19431 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19432 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19433 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19434 /* Virtual Pins to force backends ON atm */
19435 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19436 SND_SOC_DAPM_INPUT("BE_IN"),
19437
19438 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19439 &slim0_rx_vi_fb_lch_mux),
19440 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19441 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019442 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19443 &wsa_rx_0_vi_fb_lch_mux),
19444 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19445 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019446 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19447 &mi2s_rx_vi_fb_mux),
19448 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19449 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19450 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19451 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19452
19453 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19454 &voc_ext_ec_mux),
19455 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19456 &ext_ec_ref_mux_ul1),
19457 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19458 &ext_ec_ref_mux_ul2),
19459 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19460 &ext_ec_ref_mux_ul3),
19461 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19462 &ext_ec_ref_mux_ul4),
19463 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19464 &ext_ec_ref_mux_ul5),
19465 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19466 &ext_ec_ref_mux_ul6),
19467 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19468 &ext_ec_ref_mux_ul8),
19469 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19470 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019471 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19472 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019473 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19474 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019475 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19476 &ext_ec_ref_mux_ul17),
19477 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19478 &ext_ec_ref_mux_ul18),
19479 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19480 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019481 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19482 &ext_ec_ref_mux_ul28),
19483 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19484 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019485};
19486
19487static const struct snd_soc_dapm_route intercon[] = {
19488 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19489 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19490 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19491 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19492 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19493 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19494 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19495 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19496 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19497 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19498 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19499 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19500 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19501 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19502 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19503 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019504 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019505 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19506
19507 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19508 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19509 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19510 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19511 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19512 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19513 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19514 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19515 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19516 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19517 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19518 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19519 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19520 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19521 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19522 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019523 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019524 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19525
19526 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19527 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19528 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19529 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19530 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19531 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19532 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19533 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19534 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19535 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19536 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19537 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19538 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19539 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19540 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19541 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019542 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019543 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19544
19545 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19546 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19547 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19548 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19549 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19550 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19551 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19552 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19553 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19554 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19555 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19556 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19557 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19558 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19559 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19560 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019561 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019562 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19563
19564 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19565 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19566 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19567 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19568 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19569 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19570 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19571 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19572 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19573 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19574 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19575 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19576 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19577 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19578 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19579 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019580 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019581 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19582
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019583 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19584 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19585 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19586 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19587 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19588 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19589 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19590 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19591 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19592 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19593 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19594 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19595 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19596 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19597 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19598 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019599 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019600 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19601
19602 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19603 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19604 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19605 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19606 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19607 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19608 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19609 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19610 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19611 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19612 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19613 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19614 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19615 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19616 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19617 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019618 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019619 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19620
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019621 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19622 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19623 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19624 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19625 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19626 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19627 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19628 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19629 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19630 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19631 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19632 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19633 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19634 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19635 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19636 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019637 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019638 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19639
19640 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19641 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19642 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19643 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19644 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19645 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19646 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19647 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19648 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19649 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19650 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19651 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19652 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19653 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19654 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19655 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019656 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019657 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19658
19659 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19660 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19661 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19662 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19663 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19664 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19665 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19666 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19667 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19668 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19669 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19670 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19671 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19672 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19673 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19674 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019675 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019676 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19677
19678 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19679 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19680 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19681 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19682 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19683 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19684 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19685 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19686 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19687 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19688 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19689 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19690 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19691 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19692 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19693 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019694 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019695 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19696
19697 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19698 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19699 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19700 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19701 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19702 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19703 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19704 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19705 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19706 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19707 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19708 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19709 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19710 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19711 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19712 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019713 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019714 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19715
19716 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19717 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19718 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19719 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19720 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19721 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19722 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19723 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19724 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19725 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19726 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19727 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19728 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19729 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19730 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19731 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019732 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019733 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19734
19735 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19736 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19737 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19738 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19739 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19740 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19741 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19742 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19743 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19744 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19745 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19746 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19747 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19748 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19749 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19750 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019751 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019752 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19753
19754 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19755 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19756 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19757 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19758 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19759 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19760 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19761 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19762 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19763 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19764 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19765 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19766 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19767 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19768 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19769 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019770 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019771 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19772
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019773 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19774 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19775 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19776 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19777 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19778 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19779 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19780 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19781 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19782 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19783 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19784 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19785 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19786 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19787 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19788 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019789 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019790 {"HDMI", NULL, "HDMI Mixer"},
19791
19792 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19793 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19794 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19795 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19796 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19797 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19798 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19799 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19800 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19801 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19802 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19803 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19804 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19805 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19806 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19807 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019808 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019809 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19810
Karthikeyan Mani57550082018-05-03 18:43:58 -070019811 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19812 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19813 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19814 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19815 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19816 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19817 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19818 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19819 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19820 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19821 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19822 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19823 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19824 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19825 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19826 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019827 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070019828 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19829
Ralf Herzc8701f72018-06-20 11:37:35 +020019830 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19831 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19832 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19833 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19834 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19835 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19836 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19837 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19838 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19839 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19840 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19841 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19842 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19843 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19844 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19845 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019846 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019847 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19848
19849 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19850 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19851 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19852 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19853 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19854 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19855 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19856 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19857 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19858 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19859 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19860 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19861 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19862 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19863 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19864 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019865 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019866 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019867
19868 /* incall */
19869 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19870 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19871 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19872 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19873 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19874 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19875 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19876 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19877 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19878 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19879 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19880 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19881 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19882 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19883 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19884
19885 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19886 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19887 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19888 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19889 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19890 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19891 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19892 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19893 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19894 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19895 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19896 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19897 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19898 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19899 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19900 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019901 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019902 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19903
19904 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19905 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19906 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19907 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19908 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19909 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19910 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19911 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19912 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19913 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19914 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19915 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19916 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19917 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19918 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19919 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019920 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019921 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19922
Surendar Karka3ef3d812018-09-28 18:52:35 +053019923 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19924 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19925 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19926 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19927 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19928 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19929 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19930 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19931 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19932 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19933 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19934 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19935 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19936 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19937 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19938 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19939 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
19940 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
19941
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019942 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19943 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19944 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19945 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19946 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19947 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19948 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19949 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19950 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19951 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19952 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19953 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19954 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19955 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19956 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19957 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019958 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019959 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19960
19961 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19962 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19963 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19964 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19965 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19966 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19967 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19968 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19969 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19970 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019971 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019972 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19973 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019974 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019975 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19976 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19977 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19978 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019979 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19980 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019981 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19982 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19983 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19984 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19985 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19986 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019987 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19988 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019989 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019990 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019991 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19992 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19993 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19994 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19995 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19996 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019997 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019998 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19999 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20000 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020001 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20002 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20003 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020004 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020005 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020006 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20007 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020008 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020009 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020010 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020011 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20012 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20013
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020014 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20015 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20016 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20017 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20018 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20019 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20020 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20021 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20022 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20023 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20024 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20025 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20026 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20027 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20028 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20029 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020030 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020031 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20032
20033 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20034 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20035 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20036 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20037 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20038 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20039 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20040 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20041 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20042 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20043 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20044 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20045 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20046 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20047 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020048 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020049 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20050
20051 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20052 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20053 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20054 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20055 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20056 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20057 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20058 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20059 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20060 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20061 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20062 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20063 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20064 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020065 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020066 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20067
20068 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20069 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20070 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20071 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20072 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20073 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20074 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20075 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20076 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20077 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20078 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20079 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20080 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20081 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020082 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020083 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20084
20085 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20086 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20087
20088 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20089 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20090
20091 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20092 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20093 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20094 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20095 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20096 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20097 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20098 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20099 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20100 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20101 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20102 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20103 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20104 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20105 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020106 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020107 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20108
20109 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20110 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20111 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20112 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20113 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20114 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20115 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20116 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20117 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20118 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20119 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20120 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20121 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20122 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20123 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20124 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20125
20126 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20127 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20128 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20129 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20130 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20131 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20132 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20133 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20134 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20135 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20136 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20137 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20138 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20139 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20140 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20141 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20142
20143 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20144 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20145 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20146 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20147 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20148 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20149 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20150 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20151 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20152 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20153 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20154 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20155 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20156 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20157 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20158 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20159 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20160 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20161
20162 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20163 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20164 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20165 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20166 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20167 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20168 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20169 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20170 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20171 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20172 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20173 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20174 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20175 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20176 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20177 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020178 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020179 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20180
20181 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20182 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20183 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20184 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20185 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20186 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20187 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20188 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20189 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20190 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20191 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20192 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20193 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20194 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20195 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20196 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020197 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020198 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20199
20200 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20201 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20202 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20203 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20204 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20205 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20206 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20207 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20208 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20209 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20210 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20211 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20212 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20213 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20214 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20215 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020216 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020217 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20218
20219 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20220 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20221 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20222 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20223 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20224 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20225 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20226 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20227 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20228 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20229 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20230 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20231 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20232 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20233 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20234 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020235 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020236 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20237
20238 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20239 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20240 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20241 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20242 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20243 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20244 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20245 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20246 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20247 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20248 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20249 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20250 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20251 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20252 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20253 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20254 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20255
20256 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20257 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20258 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20259 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20260 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20261 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20262 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20263 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20264 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20265 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20266 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20267 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20268 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20269 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20270 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20271 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020272 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020273 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20274
20275 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20276 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20277 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20278 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20279 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20280 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20281 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20282 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20283 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20284 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20285 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20286 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20287 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20288 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20289 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20290 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020291 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020292 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20293
20294 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20295 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20296 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20297 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20298 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20299 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20300 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20301 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20302 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20303 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20304 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20305 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20306 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20307 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20308 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20309 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020310 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020311 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20312
20313 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20314 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20315 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20316 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20317 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20318 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20319 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20320 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20321 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20322 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20323 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20324 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20325 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20326 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20327 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20328 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020329 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020330 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20331
20332 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20333 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20334 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20335 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20336 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20337 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20338 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20339 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20340 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20341 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20342 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20343 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20344 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20345 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20346 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20347 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20348 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20349
20350 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20351 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20352 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20353 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20354 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20355 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20356 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20357 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20358 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20359 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20360 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20361 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20362 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20363 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20364 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20365 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020366 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020367 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20368
20369 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20370 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20371 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20372 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20373 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20374 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20375 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20376 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20377 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20378 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20379 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20380 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20381 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20382 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20383 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20384 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20385 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20386
20387 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20388 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20389 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20390 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20391 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20392 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20393 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20394 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20395 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20396 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20397 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20398 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20399 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20400 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20401 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20402 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020403 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020404 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20405
20406 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20407 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20408 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20409 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20410 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20411 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20412 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20413 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20414 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20415 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20416 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20417 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20418 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20419 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20420 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20421 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020422 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020423 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20424
20425 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20426 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20427 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20428 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20429 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20430 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20431 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20432 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20433 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20434 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20435 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20436 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20437 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20438 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20439 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20440 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020441 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020442 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20443
20444 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20445 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20446 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20447 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20448 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20449 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20450 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20451 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20452 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20453 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20454 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20455 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20456 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20457 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20458 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20459 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020460 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020461 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20462
20463 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20464 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20465 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20466 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20467 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20468 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20469 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20470 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20471 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20472 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20473 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20474 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20475 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20476 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20477 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20478 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20479 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020480 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020481 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20482
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020483 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20484 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20485 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20486 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20487 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20488 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20489 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20490 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20491 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20492 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20493 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20494 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20495 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20496 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20497 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20498 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20499 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20500
20501 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20502 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20503 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20504 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20505 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20506 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20507 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20508 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20509 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20510 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20511 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20512 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20513 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20514 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20515 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20516 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20517 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020518 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020519 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20520
20521 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20522 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20523 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20524 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20525 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20526 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20527 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20528 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20529 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20530 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20531 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20532 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20533 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20534 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20535 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20536 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20537 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020538 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020539 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20540
20541 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20542 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20543 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20544 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20545 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20546 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20547 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20548 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20549 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20550 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20551 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20552 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20553 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20554 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20555 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20556 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20557 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020558 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020559 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20560
Rohit Kumara5077932017-09-10 22:05:05 +053020561 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20562 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20563 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20564 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20565 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20566 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20567 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20568 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20569 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20570 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20571 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20572 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20573 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20574 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20575 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20576 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20577 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020578 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020579 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20580
20581 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20582 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20583 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20584 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20585 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20586 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20587 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20588 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20589 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20590 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20591 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20592 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20593 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20594 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20595 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20596 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20597 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20598
20599 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20600 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20601 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20602 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20603 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20604 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20605 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20606 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20607 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20608 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20609 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20610 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20611 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20612 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20613 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20614 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20615 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020616 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020617 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20618
20619 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20620 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20621 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20622 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20623 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20624 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20625 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20626 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20627 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20628 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20629 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20630 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20631 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20632 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20633 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20634 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20635 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020636 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020637 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20638
20639 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20640 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20641 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20642 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20643 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20644 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20645 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20646 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20647 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20648 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20649 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20650 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20651 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20652 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20653 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20654 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20655 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020656 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020657 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20658
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020659 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20660 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20661 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20662 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20663 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020664 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020665 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020666 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20667 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20668 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20669 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20670 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20671 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20672 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20673 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20674 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20675 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20676 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20677 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20678 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20679 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20680 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020681 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020682 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20683 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20684 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020685 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020686 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20687 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020688 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20689 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20690 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020691 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020692 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20693 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20694 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020695 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020696 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020697 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20698 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20699 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020700 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20701 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20702 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20703 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20704 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20705 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20706 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20707 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20708 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20709 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20710 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020711 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020712 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20713 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20714 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020715 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020716 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020717 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20718 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20719 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020720 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020721 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020722 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20723 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20724 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20725 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20726 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020727 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20728 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20729 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20730 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020731 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020732
20733 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20734 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20735 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20736 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20737 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20738 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20739 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20740 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20741 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20742 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20743 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20744 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20745 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20746 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20747 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20748 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020749 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20750 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20751 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20752 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020753 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20754 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20755 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20756 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20757 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020758 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20759 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20760 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20761 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20762 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20763 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020764 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20765 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020766
20767 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20768 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20769 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20770 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20771 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20772 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20773 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20774 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20775 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20776 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20777 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20778 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20779 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20780 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20781 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20782 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020783 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20784 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20785 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20786 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020787 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20788 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20789 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20790 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20791 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020792 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20793 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20794 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20795 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20796 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20797 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020798 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20799 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020800
20801 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20802 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20803 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20804 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20805 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20806 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20807 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20808 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20809 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20810 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20811 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20812 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20813 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20814 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20815 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20816 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020817 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20818 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20819 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20820 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020821 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20822 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20823 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20824 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20825 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020826 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20827 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20828 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20829 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20830 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20831 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020832 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20833 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020834
20835 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20836 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20837 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20838 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20839 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20840 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20841 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20842 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20843 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20844 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20845 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20846 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20847 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20848 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20849 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20850 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020851 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20852 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20853 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20854 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020855 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20856 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20857 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20858 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20859 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020860 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20861 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20862 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20863 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20864 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20865 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020866 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20867 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020868
20869 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20870 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20871 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20872 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20873 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20874 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20875 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20876 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20877 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20878 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20879 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20880 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20881 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20882 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20883 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20884 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020885 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20886 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20887 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20888 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020889 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20890 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20891 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20892 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20893 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020894 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20895 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20896 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20897 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20898 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20899 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020900 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20901 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020902
20903 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20904 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20905 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20906 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20907 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20908 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20909 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20910 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20911 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20912 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20913 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20914 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20915 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20916 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20917 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20918 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020919 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20920 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20921 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20922 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020923 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20924 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20925 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20926 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20927 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020928 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20929 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20930 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20931 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20932 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20933 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020934 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20935 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020936
20937 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20938 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20939 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20940 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20941 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20942 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20943 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20944 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20945 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20946 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20947 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20948 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20949 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20950 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20951 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20952 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020953 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20954 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20955 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20956 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020957 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20958 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20959 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20960 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20961 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020962 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20963 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20964 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20965 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20966 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20967 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020968 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20969 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020970
20971 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20972 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20973 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20974 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20975 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20976 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20977 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20978 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020979 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20980 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20981 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20982 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020983 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20984 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20985 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20986 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20987 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020988 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20989 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20990 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20991 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20992 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20993 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020994 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20995 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020996
Laxminath Kasam38070be2017-08-17 18:21:59 +053020997 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20998 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20999 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21000 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21001 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21002 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21003 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21004 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021005 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21006 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21007 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21008 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21009 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21010 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21011
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021012 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21013 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21014 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21015 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021016 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021017 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21018 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21019 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21020 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21021 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21022 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21023 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21024 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21025 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21026 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21027 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21028 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21029 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21030 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21031 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21032 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021033 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21034 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21035 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21036 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021037 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21038 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21039 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21040 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21041 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021042 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21043 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21044 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21045 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21046 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21047 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021048 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21049 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021050
Derek Chen07c6d1c2018-07-05 10:39:25 -070021051 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21052 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21053 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21054 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21055 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21056 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21057 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21058 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21059 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21060 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21061 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21062 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21063 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21064 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21065 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21066 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21067 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21068 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21069 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21070 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21071 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21072 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021073 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21074 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21075 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21076 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21077 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
21078 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21079 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21080 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21081 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21082 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21083 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21084 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21085 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021086
Surendar Karkac1cde372018-08-14 18:56:24 +053021087 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21088 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21089 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021090 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021091 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21092 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21093 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21094 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21095 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21096 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21097 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
21098
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021099 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21100 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21101 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21102 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21103 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21104 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021105 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021106
Asish Bhattacharya34504582017-08-08 12:55:01 +053021107 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21108 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21109 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21110 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21111 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21112 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21113 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21114 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21115 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21116 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21117 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21118 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21119 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21120 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21121 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21122 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21123 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021124 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21125 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21126 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21127 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21128 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021129 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21130 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21131 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21132 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21133 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21134 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021135 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21136 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021137
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021138 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21139 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21140 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21141 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21142 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21143 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21144
21145 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21146 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21147 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21148 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21149 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21150 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21151
21152 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21153 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21154 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21155 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21156 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21157 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21158
21159 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21160 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21161 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21162 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21163 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21164 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21165
21166 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21167 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21168 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21169 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21170 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21171 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21172
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021173 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21174 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21175 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21176 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21177 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21178 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21179 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21180 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21181 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21182 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21183 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21184 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21185 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21186 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21187 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21188 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21189 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21190 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21191
21192 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21193 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21194 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21195 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21196 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21197 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21198 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21199 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21200 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21201 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21202 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21203 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21204 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21205 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21206 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21207 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21208 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21209 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21210
21211 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21212 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21213 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21214 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21215 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21216 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21217 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21218 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21219 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21220 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21221 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21222 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21223 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21224 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21225 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21226 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21227 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21228
21229 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21230 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21231 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21232 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21233 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21234 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21235 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21236 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21237 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21238 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21239 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21240 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21241 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21242 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21243 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21244 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21245 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21246
21247 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21248 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21249 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021250 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021251 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21252 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21253 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021254 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21255 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021256 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21257 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021258 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021259 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21260 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021261 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021262 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21263 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21264 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021265 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21266 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021267 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21268 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21269 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21270
21271 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21272 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21273 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021274 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021275 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21276 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21277 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021278 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21279 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021280 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21281 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021282 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021283 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21284 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21285 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21286 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21287 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21288 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21289 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21290 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21291 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021292 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021293 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021294 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21295 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21296 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21297 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021298 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021299 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021300 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21301 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021302
21303 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21304 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21305 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21306 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21307 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21308 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21309 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21310 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21311 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21312 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21313 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21314 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21315 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21316 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21317 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21318 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021319 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021320 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21321
21322 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21323 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21324 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21325 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21326 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21327 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21328 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21329 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21330 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21331 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21332 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21333 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21334 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21335 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21336 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21337 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021338 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021339 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21340
21341 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21342 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21343 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21344 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21345 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21346 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21347 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21348 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21349 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21350 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21351 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21352 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21353 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21354 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21355 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21356 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21357 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21358
21359 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21360 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21361 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21362 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21363 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21364 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21365 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21366 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21367 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21368 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21369 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21370 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21371 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21372 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21373 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21374 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21375 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21376
Rohit Kumara5077932017-09-10 22:05:05 +053021377 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21378 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21379 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21380 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21381 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21382 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21383 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21384 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21385 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21386 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21387 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21388 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21389 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21390 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21391 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21392 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21393 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21394
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021395 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21396 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21397 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21398 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21399 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21400 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21401
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021402 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21403 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21404 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21405 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21406
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021407 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21408 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21409 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21410 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21411 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21412 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21413
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021414 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21415 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021416 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21417 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21418 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21419 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21420
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021421 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21422 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021423 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21424 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21425 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21426 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21427
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021428 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21429 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021430 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21431 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21432 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21433 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21434
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021435 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21436 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021437 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21438 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21439 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21440 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21441
Karthikeyan Mani57550082018-05-03 18:43:58 -070021442 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21443 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21444 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21445 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21446 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21447 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21448
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021449 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21450 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21451 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21452 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21453 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021454 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21455
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021456 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21457 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21458 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21459 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21460 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21461 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21462
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021463 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21464 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021465 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21466 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21467 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21468 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21469
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021470 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21471 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021472 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21473 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21474 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21475 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21476
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021477 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21478 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021479 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21480 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21481 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21482 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21483
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021484 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21485 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021486 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21487 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21488 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21489 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21490
Rohit Kumara5077932017-09-10 22:05:05 +053021491 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21492 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021493 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21494 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21495 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21496 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21497
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021498 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21499 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21500 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21501 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21502 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21503 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21504 {"HDMI", NULL, "HDMI_DL_HL"},
21505
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021506 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021507 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21508 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21509 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021510 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021511 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21512
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021513 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021514 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21515 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21516 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21517 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21518 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21519
21520 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21521 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21522 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21523 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21524 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21525 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21526
21527 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21528 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21529 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21530 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21531 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21532 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21533
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021534 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021535 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21536 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21537 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21538 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21539 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21540
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021541 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021542 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21543 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21544 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21545 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21546
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021547 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021548 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21549 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21550 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21551 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21552
21553 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21554 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21555
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021556 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21557 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21558 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21559
21560 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21561 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21562 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21563
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021564 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21565 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21566 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21567 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021568 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021569 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021570 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021571 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021572 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21573 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21574
21575 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21576 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21577 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21578 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21579 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21580 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21581 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21582 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21583 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21584 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021585 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21586 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021587
21588 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21589 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21590 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21591 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21592
21593 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21594 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21595 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21596 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21597
21598 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21599 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21600 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21601 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21602
21603 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21604 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21605 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21606 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21607
21608 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21609 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21610 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21611 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21612
21613 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21614 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21615 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21616 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21617
21618 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21619 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21620 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21621 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21622
Laxminath Kasam38070be2017-08-17 18:21:59 +053021623 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21624 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21625 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21626 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21627 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21628 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21629 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21630 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21631 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21632 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021633 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21634 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021635
21636 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21637 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21638 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21639 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21640
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021641 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21642 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21643 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21644 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21645
21646 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21647 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21648 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21649 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21650
21651 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21652 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21653 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21654 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21655
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021656 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21657 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21658 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21659 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21660
21661 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21662 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21663 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21664 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021665
21666 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21667 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21668 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21669 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21670 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21671 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21672 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21673 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21674
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021675 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21676 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21677 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21678 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21679 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21680 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21681 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21682 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021683 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021684 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021685 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21686 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21687 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021688 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21689 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021690
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021691 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21692 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21693 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21694 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21695 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21696 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21697 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21698 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21699 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21700 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21701 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21702 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21703 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21704 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21705 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021706 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021707 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021708 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21709 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21710 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21711 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21712 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21713 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021714 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21715
21716 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21717 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21718 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21719 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21720 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21721 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21722 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21723 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21724 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21725 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21726 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21727 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21728 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21729 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21730 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021731 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021732 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21733 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21734 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21735 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21736 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21737 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021738 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21739
21740 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21741 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21742 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21743 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21744 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21745 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21746 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21747 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21748 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21749 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21750 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21751 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21752 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21753 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021754 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021755 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21756 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21757
21758 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21759 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21760 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21761 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21762 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21763 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21764 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21765 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21766 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21767 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21768 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21769 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21770 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21771 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21772 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021773 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21774 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21775 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021776 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21777 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21778 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021779 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21780 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21781 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21782 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21783 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21784 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21785 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21786 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021787 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21788 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021789 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021790 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021791 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21792
21793 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21794 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21795 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21796 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21797 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21798 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21799 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21800 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021801 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21802 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021803 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021804 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021805 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21806
21807
21808 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21809 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21810 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21811 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21812 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21813 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21814 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21815 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021816 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21817 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021818 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021819 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021820 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21821
21822
21823 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21824 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21825 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21826 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21827 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21828 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21829 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21830 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021831 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21832 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021833 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021834 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021835 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21836
21837 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21838 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21839 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21840 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21841 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21842 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21843 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21844 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021845 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21846 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021847 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021848 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021849 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21850
21851 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21852 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21853 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21854 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21855 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21856 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021857 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21858 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021859 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021860 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021861 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21862
21863 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21864 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21865 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21866 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21867 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21868 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021869 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21870 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021871 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021872 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021873 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21874
21875 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21876 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21877 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21878 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21879 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21880 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021881 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21882 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021883 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021884 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021885 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21886
21887
21888 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21889 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21890 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21891 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21892 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21893 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21894 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21895 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21896 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21897 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21898 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021899 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021900 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21901 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21902 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21903 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21904 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21905 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21906
21907 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21908 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21909 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21910 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21911 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21912 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21913 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21914 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21915 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21916 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21917 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21918 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021919 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21920 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021921 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021922 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021923 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021924 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21925 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21926 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21927 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21928
21929 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21930 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21931 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21932 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21933 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21934 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21935 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21936 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21937 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21938 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21939 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21940
21941 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21942 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021943 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21944 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021945 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21946 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21947 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21948 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21949 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21950 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21951 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21952 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21953 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21954 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21955
21956 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21957 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21958 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21959 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21960 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21961 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21962 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21963 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21964 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21965 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21966 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21967 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21968 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21969 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21970 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21971 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070021972 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021973 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21974 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21975 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21976 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070021977 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021978 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21979 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21980 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21981 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21982 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21983 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21984 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21985 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21986 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21987 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21988 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21989 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021990 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21991 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21992 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21993 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21994 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21995 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21996 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21997 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021998
21999 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22000 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22001 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22002 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22003 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22004 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22005 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22006 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22007 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22008 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22009 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22010 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22011 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22012 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22013 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22014 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022015 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22016 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22017 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22018 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022019 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22020
22021 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22022 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22023 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22024 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22025 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22026 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22027 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22028 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22029 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22030 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22031 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22032 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22033 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22034 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22035 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22036 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022037 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22038 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22039 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22040 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022041 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22042
22043 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22044 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22045 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22046 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22047 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22048 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22049 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22050 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22051 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22052 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22053 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22054 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22055 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22056 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22057 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22058 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022059 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22060 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22061 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22062 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022063 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22064
22065 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22066 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22067 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22068 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22069 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22070 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22071 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22072 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22073 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22074 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22075 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22076 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22077 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22078 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22079 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22080 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022081 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22082 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22083 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22084 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022085 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22086
22087 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22088 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22089 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22090 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22091 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22092 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22093 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22094 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22095 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22096 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22097 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22098 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22099 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22100 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22101 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22102 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022103 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22104 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22105 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22106 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022107 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22108
22109 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22110 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22111 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22112 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22113 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22114 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22115 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22116 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22117 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22118 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22119 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22120 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22121 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22122 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22123 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22124 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022125 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22126 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22127 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22128 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022129 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22130
22131 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22132 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22133 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22134 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22135 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22136 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22137 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22138 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22139 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22140 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22141 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22142 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22143 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22144 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22145 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22146 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022147 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22148 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22149 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22150 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022151 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22152
22153 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22154 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22155 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22156 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22157 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22158 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22159 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22160 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22161 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22162 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22163 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22164 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22165 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22166 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22167 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22168 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022169 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22170 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22171 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22172 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022173 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22174
Derek Chenfdcc0982018-10-02 15:14:03 -070022175 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22176 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22177
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022178 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22179 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22180 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22181 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22182 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22183 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22184 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22185 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22186 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22187 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22188 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22189 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22190 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22191 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22192 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22193 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022194 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22195 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22196 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22197 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022198 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22199
22200 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22201 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22202 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22203 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22204 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22205 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22206 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22207 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22208 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22209 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22210 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22211 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22212 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22213 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22214 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22215 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022216 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22217 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22218 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22219 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022220 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22221
22222 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22223 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22224 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22225 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22226 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22227 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22228 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22229 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22230 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22231 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22232 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22233 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22234 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22235 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22236 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22237 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022238 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22239 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22240 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22241 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022242 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22243
22244 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22245 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22246 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22247 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22248 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22249 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22250 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22251 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22252 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22253 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22254 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22255 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22256 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22257 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22258 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22259 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022260 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22261 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22262 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22263 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022264 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22265
22266 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22267 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22268 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22269 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22270 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22271 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22272 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22273 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22274 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22275 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22276 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22277 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22278 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22279 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22280 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22281 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022282 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22283 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22284 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22285 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022286 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22287
22288 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22289 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22290 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22291 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22292 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22293 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22294 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22295 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22296 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22297 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22298 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22299 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22300 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22301 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22302 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22303 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022304 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22305 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22306 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22307 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022308 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22309
22310 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22311 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22312 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22313 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22314 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22315 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22316 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22317 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22318 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22319 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22320 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22321 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22322 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22323 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22324 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22325 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022326 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22327 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22328 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22329 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022330 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22331
22332 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22333 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22334 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22335 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22336 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22337 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22338 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22339 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22340 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22341 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22342 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22343 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22344 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22345 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22346 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22347 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022348 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22349 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22350 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22351 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022352 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22353
Rohit Kumara5077932017-09-10 22:05:05 +053022354 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22355 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22356 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22357 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22358 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22359 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22360 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22361 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22362 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22363 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22364 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22365 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22366 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22367 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22368 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22369 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22370 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22371 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22372 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22373 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022374 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022375
22376 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22377 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22378 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22379 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22380 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22381 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22382 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22383 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22384 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22385 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22386 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22387 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22388 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22389 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22390 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22391 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22392 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22393 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22394 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22395 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022396 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022397
22398 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22399 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22400 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22401 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22402 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22403 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22404 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22405 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22406 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22407 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22408 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22409 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22410 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22411 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22412 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22413 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22414 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22415 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22416 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22417 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022418 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022419
22420 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22421 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22422 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22423 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22424 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22425 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22426 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22427 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22428 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22429 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22430 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22431 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22432 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22433 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22434 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22435 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22436 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22437 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22438 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22439 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022440 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022441
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022442 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22443 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22444 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22445 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022446 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022447 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22448 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22449 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22450 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022451 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022452 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22453 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22454
22455 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22456 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22457 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22458 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022459 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022460 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22461 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22462 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022463 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022464 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22465 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22466 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22467
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022468 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22469 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22470 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022471 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22472 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22473
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022474
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022475 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22476 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22477 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22478 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22479 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022480 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022481 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22482 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22483 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22484 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022485 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022486 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22487 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22488 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22489 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22490 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022491 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022492 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22493 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22494 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22495 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22496 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22497 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22498 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22499 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22500 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22501 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22502
22503
22504 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22505 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22506 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22507 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22508 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022509 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022510 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22511
22512 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22513 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22514 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022515 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022516 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22517
22518 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22519 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22520 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22521 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22522
22523 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22524 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22525 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22526 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22527
Rohit Kumara5077932017-09-10 22:05:05 +053022528 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22529 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22530 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22531 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22532
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022533 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22534 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22535 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22536 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22537 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22538 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22539 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22540 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022541 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022542 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22543 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22544 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22545 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22546 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22547 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22548 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22549 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22550 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22551 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22552 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22553
22554 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22555 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22556 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22557 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22558 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22559 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22560 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22561 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22562 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22563 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22564 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22565 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22566
22567 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22568 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22569 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22570 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22571 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22572 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22573 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22574 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22575 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22576 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22577 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22578 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22579
kunleizdf5a00a2017-11-27 15:27:36 +080022580 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22581 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022582 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022583
22584 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22585 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022586 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022587
22588 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22589 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022590 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22591
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022592 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22593 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022594 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22595 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22596 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22597 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22598
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022599 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22600 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022601 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22602 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22603 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22604 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22605
22606 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22607 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22608 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22609 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22610 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22611 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22612 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22613 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22614 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22615 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22616 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22617 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22618 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22619
22620 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22621 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22622 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22623 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22624 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022625 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022626 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22627 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22628 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22629 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22630 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22631 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22632 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22633 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22634
22635 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22636 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22637
22638 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22639 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22640
Karthikeyan Mani57550082018-05-03 18:43:58 -070022641 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22642 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22643
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022644 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22645 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22646
22647 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22648 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22649 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22650
22651 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22652 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22653 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22654 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022655 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022656 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22657 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22658 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22659 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022660 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022661 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22662
22663 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22664 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22665 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22666 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022667 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022668 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22669 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22670 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022671 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022672 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22673
22674 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22675 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22676 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22677 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022678 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022679 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22680 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22681 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
22682
22683 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22684 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22685 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22686 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022687 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022688 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22689 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22690 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22691 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22692 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
22693
Rohit Kumara5077932017-09-10 22:05:05 +053022694 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22695 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22696 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22697 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22698 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22699 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22700 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22701 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
22702
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022703 /* Backend Enablement */
22704
22705 {"BE_OUT", NULL, "PRI_I2S_RX"},
22706 {"BE_OUT", NULL, "SEC_I2S_RX"},
22707 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22708 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22709 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22710 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22711 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22712 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22713 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22714 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22715 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022716 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022717 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22718 {"BE_OUT", NULL, "HDMI"},
22719 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022720 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022721 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22722 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022723 {"BE_OUT", NULL, "MI2S_RX"},
22724 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22725 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22726 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22727 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22728 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22729 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22730 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22731 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022732 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22733 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22734 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022735 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22736 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22737 {"BE_OUT", NULL, "INT_FM_RX"},
22738 {"BE_OUT", NULL, "PCM_RX"},
22739 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22740 {"BE_OUT", NULL, "AUX_PCM_RX"},
22741 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22742 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22743 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022744 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022745 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22746 {"BE_OUT", NULL, "INT_FM_RX"},
22747 {"BE_OUT", NULL, "PCM_RX"},
22748 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22749 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22750 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22751 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22752 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22753 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22754 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22755 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22756 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22757 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22758 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022759 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022760 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22761 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22762 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22763 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22764 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22765 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22766 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22767 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22768 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022769 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22770 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22771 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22772 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022773 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22774 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022775 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22776 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22777 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22778 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22779 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22780 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22781 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22782 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022783
22784 {"PRI_I2S_TX", NULL, "BE_IN"},
22785 {"MI2S_TX", NULL, "BE_IN"},
22786 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22787 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22788 {"PRI_MI2S_TX", NULL, "BE_IN"},
22789 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022790 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022791 {"INT2_MI2S_TX", NULL, "BE_IN"},
22792 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022793 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022794 {"INT5_MI2S_TX", NULL, "BE_IN"},
22795 {"SEC_MI2S_TX", NULL, "BE_IN"},
22796 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22797 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22798 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22799 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22800 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22801 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22802 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22803 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22804 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053022805 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022806 {"USB_AUDIO_TX", NULL, "BE_IN" },
22807 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22808 {"INT_FM_TX", NULL, "BE_IN"},
22809 {"PCM_TX", NULL, "BE_IN"},
22810 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22811 {"BE_OUT", NULL, "STUB_RX"},
22812 {"STUB_TX", NULL, "BE_IN"},
22813 {"STUB_1_TX", NULL, "BE_IN"},
22814 {"BE_OUT", NULL, "AUX_PCM_RX"},
22815 {"AUX_PCM_TX", NULL, "BE_IN"},
22816 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22817 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22818 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022819 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022820 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22821 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22822 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22823 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022824 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22825 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022826 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22827 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22828 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22829 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22830 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022831 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22832 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022833 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22834 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22835 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22836 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22837 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22838 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22839 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22840 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22841 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22842 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22843 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22844 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22845 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22846 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22847 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022848 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022849 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22850 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22851 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22852 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022853 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22854 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22855 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22856 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022857 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22858 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22859 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22860 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22861 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022862 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22863 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22864 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22865 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22866 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22867 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022868 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22869 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022870};
22871
22872static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22873 struct snd_pcm_hw_params *params)
22874{
22875 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22876 unsigned int be_id = rtd->dai_link->id;
22877
22878 if (be_id >= MSM_BACKEND_DAI_MAX) {
22879 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22880 return -EINVAL;
22881 }
22882
22883 mutex_lock(&routing_lock);
22884 msm_bedais[be_id].sample_rate = params_rate(params);
22885 msm_bedais[be_id].channel = params_channels(params);
22886 msm_bedais[be_id].format = params_format(params);
22887 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22888 __func__, msm_bedais[be_id].sample_rate,
22889 msm_bedais[be_id].format, be_id);
22890 mutex_unlock(&routing_lock);
22891 return 0;
22892}
22893
22894static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22895{
22896 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22897 unsigned int be_id = rtd->dai_link->id;
22898 int i, session_type, path_type, topology;
22899 struct msm_pcm_routing_bdai_data *bedai;
22900 struct msm_pcm_routing_fdai_data *fdai;
22901
22902 pr_debug("%s: substream->pcm->id:%s\n",
22903 __func__, substream->pcm->id);
22904
22905 if (be_id >= MSM_BACKEND_DAI_MAX) {
22906 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22907 return -EINVAL;
22908 }
22909
22910 bedai = &msm_bedais[be_id];
22911 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22912 0 : 1);
22913 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22914 path_type = ADM_PATH_PLAYBACK;
22915 else
22916 path_type = ADM_PATH_LIVE_REC;
22917
22918 mutex_lock(&routing_lock);
22919 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22920 if (!is_mm_lsm_fe_id(i))
22921 continue;
22922 fdai = &fe_dai_map[i][session_type];
22923 if (fdai->strm_id != INVALID_SESSION) {
22924 int idx;
22925 int port_id;
22926 unsigned long copp =
22927 session_copp_map[i][session_type][be_id];
22928 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22929 if (test_bit(idx, &copp))
22930 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070022931
22932 if (idx >= MAX_COPPS_PER_PORT) {
22933 pr_debug("%s: copp idx is invalid, exiting\n",
22934 __func__);
22935 continue;
22936 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022937 fdai->be_srate = bedai->sample_rate;
22938 port_id = bedai->port_id;
22939 topology = adm_get_topology_for_port_copp_idx(port_id,
22940 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022941 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022942 adm_close(bedai->port_id, fdai->perf_mode, idx);
22943 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22944 __func__, copp, i, session_type, be_id,
22945 topology);
22946 clear_bit(idx,
22947 &session_copp_map[i][session_type][be_id]);
22948 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022949 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022950 msm_pcm_routing_deinit_pp(bedai->port_id,
22951 topology);
22952 }
22953 }
22954
22955 bedai->active = 0;
22956 bedai->sample_rate = 0;
22957 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022958 mutex_unlock(&routing_lock);
22959
22960 return 0;
22961}
22962
22963static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22964{
22965 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22966 unsigned int be_id = rtd->dai_link->id;
22967 int i, path_type, topology;
22968 int session_type = INVALID_SESSION;
22969 struct msm_pcm_routing_bdai_data *bedai;
22970 u32 channels, sample_rate;
22971 uint16_t bits_per_sample = 16, voc_path_type;
22972 struct msm_pcm_routing_fdai_data *fdai;
22973 u32 session_id;
22974 struct media_format_info voc_be_media_format;
22975 bool is_lsm;
22976
22977 pr_debug("%s: substream->pcm->id:%s\n",
22978 __func__, substream->pcm->id);
22979
22980 if (be_id >= MSM_BACKEND_DAI_MAX) {
22981 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22982 return -EINVAL;
22983 }
22984
22985 bedai = &msm_bedais[be_id];
22986
22987 mutex_lock(&routing_lock);
22988 if (bedai->active == 1)
22989 goto done; /* Ignore prepare if back-end already active */
22990
22991 /* AFE port is not active at this point. However, still
22992 * go ahead setting active flag under the notion that
22993 * QDSP6 is able to handle ADM starting before AFE port
22994 * is started.
22995 */
22996 bedai->active = 1;
22997
22998 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22999 if (!(is_mm_lsm_fe_id(i) &&
23000 route_check_fe_id_adm_support(i)))
23001 continue;
23002
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023003 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23004 SESSION_TYPE_RX : SESSION_TYPE_TX;
23005 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023006 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023007 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023008 path_type = ADM_PATH_COMPRESSED_RX;
23009 else
23010 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023011 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023012 if ((fdai->passthr_mode != LEGACY_PCM) &&
23013 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023014 path_type = ADM_PATH_COMPRESSED_TX;
23015 else
23016 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023017 }
23018
23019 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23020 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023021 if (fdai->strm_id != INVALID_SESSION) {
23022 int app_type, app_type_idx, copp_idx, acdb_dev_id;
23023
23024 if (session_type == SESSION_TYPE_TX &&
23025 fdai->be_srate &&
23026 (fdai->be_srate != bedai->sample_rate)) {
23027 pr_debug("%s: flush strm %d diff BE rates\n",
23028 __func__,
23029 fdai->strm_id);
23030
23031 if (fdai->event_info.event_func)
23032 fdai->event_info.event_func(
23033 MSM_PCM_RT_EVT_BUF_RECFG,
23034 fdai->event_info.priv_data);
23035 fdai->be_srate = 0; /* might not need it */
23036 }
23037 bits_per_sample = msm_routing_get_bit_width(
23038 bedai->format);
23039
23040 app_type =
23041 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23042 if (app_type && is_lsm) {
23043 app_type_idx =
23044 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23045 sample_rate =
23046 fe_dai_app_type_cfg[i][session_type][be_id]
23047 .sample_rate;
23048 bits_per_sample =
23049 lsm_app_type_cfg[app_type_idx].bit_width;
23050 } else if (app_type) {
23051 app_type_idx =
23052 msm_pcm_routing_get_app_type_idx(app_type);
23053 sample_rate =
23054 fe_dai_app_type_cfg[i][session_type]
23055 [be_id].sample_rate;
23056 bits_per_sample =
23057 app_type_cfg[app_type_idx].bit_width;
23058 } else
23059 sample_rate = bedai->sample_rate;
23060 /*
23061 * check if ADM needs to be configured with different
23062 * channel mapping than backend
23063 */
23064 if (!bedai->adm_override_ch)
23065 channels = bedai->channel;
23066 else
23067 channels = bedai->adm_override_ch;
23068 acdb_dev_id =
23069 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23070 topology = msm_routing_get_adm_topology(i, session_type,
23071 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023072
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023073 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23074 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23075 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023076 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23077
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023078 copp_idx = adm_open(bedai->port_id, path_type,
23079 sample_rate, channels, topology,
23080 fdai->perf_mode, bits_per_sample,
23081 app_type, acdb_dev_id);
23082 if ((copp_idx < 0) ||
23083 (copp_idx >= MAX_COPPS_PER_PORT)) {
23084 pr_err("%s: adm open failed\n", __func__);
23085 mutex_unlock(&routing_lock);
23086 return -EINVAL;
23087 }
23088 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23089 __func__, i, session_type, be_id);
23090 set_bit(copp_idx,
23091 &session_copp_map[i][session_type][be_id]);
23092
23093 if (msm_is_resample_needed(
23094 sample_rate,
23095 bedai->sample_rate))
23096 adm_copp_mfc_cfg(
23097 bedai->port_id, copp_idx,
23098 bedai->sample_rate);
23099
23100 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023101 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023102 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023103 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023104 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
23105 topology, channels);
23106 }
23107 }
23108
23109 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23110 session_id = msm_pcm_routing_get_voc_sessionid(i);
23111 if (session_id) {
23112 pr_debug("%s voice session_id: 0x%x\n", __func__,
23113 session_id);
23114
23115 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23116 voc_path_type = RX_PATH;
23117 else
23118 voc_path_type = TX_PATH;
23119
23120 voc_set_route_flag(session_id, voc_path_type, 1);
23121
23122 memset(&voc_be_media_format, 0,
23123 sizeof(struct media_format_info));
23124
23125 voc_be_media_format.port_id = bedai->port_id;
23126 voc_be_media_format.num_channels = bedai->channel;
23127 voc_be_media_format.sample_rate = bedai->sample_rate;
23128 voc_be_media_format.bits_per_sample = bedai->format;
23129 /* Defaulting this to 1 for voice call usecases */
23130 voc_be_media_format.channel_mapping[0] = 1;
23131
23132 voc_set_device_config(session_id, voc_path_type,
23133 &voc_be_media_format);
23134
23135 if (voc_get_route_flag(session_id, RX_PATH) &&
23136 voc_get_route_flag(session_id, TX_PATH))
23137 voc_enable_device(session_id);
23138 }
23139 }
23140
23141 /* Check if backend is an external ec ref port and set as needed */
23142 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23143
23144 memset(&voc_be_media_format, 0,
23145 sizeof(struct media_format_info));
23146
23147 /* Get format info for ec ref port from msm_bedais[] */
23148 voc_be_media_format.port_id = bedai->port_id;
23149 voc_be_media_format.num_channels = bedai->channel;
23150 voc_be_media_format.bits_per_sample = bedai->format;
23151 voc_be_media_format.sample_rate = bedai->sample_rate;
23152 /* Defaulting this to 1 for voice call usecases */
23153 voc_be_media_format.channel_mapping[0] = 1;
23154 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23155 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23156 __func__, voc_be_media_format.port_id,
23157 voc_be_media_format.num_channels,
23158 voc_be_media_format.bits_per_sample,
23159 voc_be_media_format.sample_rate);
23160 }
23161
23162done:
23163 mutex_unlock(&routing_lock);
23164
23165 return 0;
23166}
23167
23168static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23169 int fe_id)
23170{
23171 int index, topo_id, be_idx;
23172 unsigned long pp_config = 0;
23173 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023174 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023175 bool compr_passthr_mode = true;
23176
23177 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23178
23179 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23180 pr_err("%s: Device pp params on invalid port %d\n",
23181 __func__, port_id);
23182 return -EINVAL;
23183 }
23184
23185 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23186 if (port_id == msm_bedais[be_idx].port_id)
23187 break;
23188 }
23189
23190 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23191 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23192 return -EINVAL;
23193 }
23194
23195 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23196 if (msm_bedais_pp_params[index].port_id == port_id)
23197 break;
23198 }
23199 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23200 pr_err("%s: Invalid backend pp params index %d\n",
23201 __func__, index);
23202 return -EINVAL;
23203 }
23204
23205 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23206 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23207 pr_err("%s: Invalid passthrough topology 0x%x\n",
23208 __func__, topo_id);
23209 return -EINVAL;
23210 }
23211
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023212 session_type =
23213 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23214 SESSION_TYPE_RX : SESSION_TYPE_TX;
23215
23216 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23217 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023218 compr_passthr_mode = false;
23219
23220 pp_config = msm_bedais_pp_params[index].pp_params_config;
23221 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23222 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23223 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23224 mute_on = msm_bedais_pp_params[index].mute_on;
23225 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23226 adm_send_compressed_device_mute(port_id,
23227 copp_idx,
23228 mute_on);
23229 }
23230 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23231 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23232 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23233 &pp_config);
23234 latency = msm_bedais_pp_params[index].latency;
23235 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23236 adm_send_compressed_device_latency(port_id,
23237 copp_idx,
23238 latency);
23239 }
23240 return 0;
23241}
23242
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023243static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23244{
23245 uint32_t topology = NULL_COPP_TOPOLOGY;
23246 void *cal_info = NULL;
23247 uint32_t size = 0;
23248
23249 /* Retrieve cal_info size from cal data*/
23250 size = data_size - sizeof(struct audio_cal_type_basic);
23251 cal_info = kzalloc(size, GFP_KERNEL);
23252
23253 if (!cal_info)
23254 goto done;
23255
23256 memcpy(cal_info,
23257 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23258
23259 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23260 kfree(cal_info);
23261 cal_info = NULL;
23262
23263done:
23264 pr_debug("%s: Using topology %d\n", __func__, topology);
23265
23266 return topology;
23267}
23268
23269static void msm_routing_load_topology(size_t data_size, void *data)
23270{
23271 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023272 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023273
23274 topology_id = msm_routing_get_topology(data_size, data);
23275 if (topology_id != NULL_COPP_TOPOLOGY)
23276 ret = q6core_load_unload_topo_modules(topology_id,
23277 CORE_LOAD_TOPOLOGY);
23278 if (ret < 0)
23279 pr_debug("%s %d load topology failed\n",
23280 __func__, topology_id);
23281
23282}
23283
23284static void msm_routing_unload_topology(uint32_t topology_id)
23285{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023286 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023287
23288 if (topology_id != NULL_COPP_TOPOLOGY)
23289 ret = q6core_load_unload_topo_modules(topology_id,
23290 CORE_UNLOAD_TOPOLOGY);
23291 if (ret < 0)
23292 pr_debug("%s %d unload topology failed\n",
23293 __func__, topology_id);
23294
23295}
23296
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023297static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23298 struct snd_ctl_elem_value *ucontrol)
23299{
23300 int pp_id = ucontrol->value.integer.value[0];
23301 int port_id = 0;
23302 int index, be_idx, i, topo_id, idx;
23303 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023304 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023305 bool compr_passthr_mode = true;
23306
23307 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23308
23309 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23310 port_id = msm_bedais[be_idx].port_id;
23311 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23312 break;
23313 }
23314
23315 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23316 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23317 return -EINVAL;
23318 }
23319
23320 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23321 if (msm_bedais_pp_params[index].port_id == port_id)
23322 break;
23323 }
23324 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23325 pr_err("%s: Invalid pp params backend index %d\n",
23326 __func__, index);
23327 return -EINVAL;
23328 }
23329
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023330 session_type =
23331 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23332 SESSION_TYPE_RX : SESSION_TYPE_TX;
23333
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023334 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23335 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023336 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23337 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023338 compr_passthr_mode = false;
23339
23340 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23341 unsigned long copp =
23342 session_copp_map[i]
23343 [SESSION_TYPE_RX][be_idx];
23344 if (!test_bit(idx, &copp))
23345 continue;
23346 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23347 idx);
23348 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23349 continue;
23350 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23351 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023352 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023353 switch (pp_id) {
23354 case ADM_PP_PARAM_MUTE_ID:
23355 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23356 mute = ucontrol->value.integer.value[1] ? true : false;
23357 msm_bedais_pp_params[index].mute_on = mute;
23358 set_bit(ADM_PP_PARAM_MUTE_BIT,
23359 &msm_bedais_pp_params[index].pp_params_config);
23360 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23361 adm_send_compressed_device_mute(port_id,
23362 idx, mute);
23363 break;
23364 case ADM_PP_PARAM_LATENCY_ID:
23365 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23366 msm_bedais_pp_params[index].latency =
23367 ucontrol->value.integer.value[1];
23368 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23369 &msm_bedais_pp_params[index].pp_params_config);
23370 latency = msm_bedais_pp_params[index].latency =
23371 ucontrol->value.integer.value[1];
23372 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23373 adm_send_compressed_device_latency(port_id,
23374 idx, latency);
23375 break;
23376 default:
23377 pr_info("%s, device pp param %d not supported\n",
23378 __func__, pp_id);
23379 break;
23380 }
23381 }
23382 }
23383 return 0;
23384}
23385
23386static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23387 struct snd_ctl_elem_value *ucontrol)
23388{
23389 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23390 return 0;
23391}
23392
23393static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23394 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23395 0, 3, msm_routing_get_device_pp_params_mixer,
23396 msm_routing_put_device_pp_params_mixer),
23397};
23398
23399static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23400 struct snd_ctl_elem_value *ucontrol)
23401{
23402 ucontrol->value.integer.value[0] =
23403 core_get_license_status(ASM_MEDIA_FMT_APTX);
23404 pr_debug("%s: status %ld\n", __func__,
23405 ucontrol->value.integer.value[0]);
23406 return 0;
23407}
23408
23409static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23410 struct snd_ctl_elem_value *ucontrol)
23411{
23412 int32_t status = 0;
23413
23414 status = core_set_license(ucontrol->value.integer.value[0],
23415 APTX_CLASSIC_DEC_LICENSE_ID);
23416 pr_debug("%s: status %d\n", __func__, status);
23417 return status;
23418}
23419
23420static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23421 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23422 0xFFFF, 0, msm_aptx_dec_license_control_get,
23423 msm_aptx_dec_license_control_put),
23424};
23425
23426static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23427 struct snd_ctl_elem_info *uinfo)
23428{
23429 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23430 uinfo->count = sizeof(be_dai_name_table);
23431 return 0;
23432}
23433
23434static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23435 unsigned int __user *bytes,
23436 unsigned int size)
23437{
23438 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023439 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023440
23441 if (size < sizeof(be_dai_name_table)) {
23442 pr_err("%s: invalid size %d requested, returning\n",
23443 __func__, size);
23444 ret = -EINVAL;
23445 goto done;
23446 }
23447
23448 /*
23449 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23450 * needed when adding new backends
23451 */
23452 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23453 be_dai_name_table[i].be_id = i;
23454 strlcpy(be_dai_name_table[i].be_name,
23455 msm_bedais[i].name,
23456 LPASS_BE_NAME_MAX_LENGTH);
23457 }
23458
23459 ret = copy_to_user(bytes, &be_dai_name_table,
23460 sizeof(be_dai_name_table));
23461 if (ret) {
23462 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23463 ret = -EFAULT;
23464 }
23465
23466done:
23467 return ret;
23468}
23469
23470static const struct snd_kcontrol_new
23471 msm_routing_be_dai_name_table_mixer_controls[] = {
23472 {
23473 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23474 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23475 .info = msm_routing_be_dai_name_table_info,
23476 .name = "Backend DAI Name Table",
23477 .tlv.c = snd_soc_bytes_tlv_callback,
23478 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23479 .max = sizeof(be_dai_name_table),
23480 .get = msm_routing_be_dai_name_table_tlv_get,
23481 }
23482 },
23483};
23484
23485static int msm_routing_stereo_channel_reverse_control_get(
23486 struct snd_kcontrol *kcontrol,
23487 struct snd_ctl_elem_value *ucontrol)
23488{
23489 ucontrol->value.integer.value[0] = swap_ch;
23490 pr_debug("%s: Swap channel value: %ld\n", __func__,
23491 ucontrol->value.integer.value[0]);
23492 return 0;
23493}
23494
23495static int msm_routing_stereo_channel_reverse_control_put(
23496 struct snd_kcontrol *kcontrol,
23497 struct snd_ctl_elem_value *ucontrol)
23498{
23499 int i, idx, be_index, port_id;
23500 int ret = 0;
23501 unsigned long copp;
23502
23503 pr_debug("%s Swap channel value:%ld\n", __func__,
23504 ucontrol->value.integer.value[0]);
23505
23506 swap_ch = ucontrol->value.integer.value[0];
23507
23508 mutex_lock(&routing_lock);
23509 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23510 port_id = msm_bedais[be_index].port_id;
23511 if (!msm_bedais[be_index].active)
23512 continue;
23513
23514 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23515 MSM_FRONTEND_DAI_MM_SIZE) {
23516 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23517 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23518 if (!test_bit(idx, &copp))
23519 continue;
23520
23521 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23522 __func__, port_id, idx);
23523 ret = adm_swap_speaker_channels(
23524 port_id, idx,
23525 msm_bedais[be_index].sample_rate,
23526 swap_ch);
23527 if (ret) {
23528 pr_err("%s:Swap_channel failed, err=%d\n",
23529 __func__, ret);
23530 goto done;
23531 }
23532 }
23533 }
23534 }
23535done:
23536 mutex_unlock(&routing_lock);
23537 return ret;
23538}
23539
23540static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23541 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23542 1, 0, msm_routing_stereo_channel_reverse_control_get,
23543 msm_routing_stereo_channel_reverse_control_put),
23544};
23545
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023546static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23547 struct snd_ctl_elem_info *uinfo)
23548{
23549 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23550 uinfo->count = 1;
23551 return 0;
23552}
23553
23554static int msm_routing_instance_id_support_put(
23555 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23556{
23557 bool supported = ucontrol->value.integer.value[0] ? true : false;
23558
23559 q6common_update_instance_id_support(supported);
23560 return 0;
23561}
23562
23563static int msm_routing_instance_id_support_get(
23564 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23565{
23566 bool supported = false;
23567
23568 supported = q6common_is_instance_id_supported();
23569 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23570
23571 return 0;
23572}
23573
23574static const struct snd_kcontrol_new
23575 msm_routing_feature_support_mixer_controls[] = {
23576 {
23577 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23578 SNDRV_CTL_ELEM_ACCESS_WRITE,
23579 .info = msm_routing_instance_id_support_info,
23580 .name = "Instance ID Support",
23581 .put = msm_routing_instance_id_support_put,
23582 .get = msm_routing_instance_id_support_get,
23583 },
23584};
23585
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023586static const struct snd_pcm_ops msm_routing_pcm_ops = {
23587 .hw_params = msm_pcm_routing_hw_params,
23588 .close = msm_pcm_routing_close,
23589 .prepare = msm_pcm_routing_prepare,
23590};
23591
23592/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080023593static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023594{
Meng Wangee084a02018-09-04 16:11:58 +080023595 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023596 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080023597 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023598 ARRAY_SIZE(intercon));
23599
Meng Wangee084a02018-09-04 16:11:58 +080023600 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023601
Meng Wangee084a02018-09-04 16:11:58 +080023602 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023603 ARRAY_SIZE(lsm_controls));
23604
Meng Wangee084a02018-09-04 16:11:58 +080023605 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023606 ARRAY_SIZE(aanc_slim_0_rx_mux));
23607
Meng Wangee084a02018-09-04 16:11:58 +080023608 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023609 ARRAY_SIZE(aanc_noise_level));
23610
Meng Wangee084a02018-09-04 16:11:58 +080023611 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023612 ARRAY_SIZE(msm_voc_session_controls));
23613
Meng Wangee084a02018-09-04 16:11:58 +080023614 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023615 ARRAY_SIZE(app_type_cfg_controls));
23616
Meng Wangee084a02018-09-04 16:11:58 +080023617 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023618 ARRAY_SIZE(lsm_app_type_cfg_controls));
23619
Meng Wangee084a02018-09-04 16:11:58 +080023620 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023621 ARRAY_SIZE(module_cfg_controls));
23622
Meng Wangee084a02018-09-04 16:11:58 +080023623 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023624 stereo_to_custom_stereo_controls,
23625 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23626
Meng Wangee084a02018-09-04 16:11:58 +080023627 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023628 ARRAY_SIZE(ec_ref_param_controls));
23629
Meng Wangee084a02018-09-04 16:11:58 +080023630 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023631 ARRAY_SIZE(channel_mixer_controls));
23632
Meng Wangee084a02018-09-04 16:11:58 +080023633 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023634
Meng Wangee084a02018-09-04 16:11:58 +080023635 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023636
Meng Wangee084a02018-09-04 16:11:58 +080023637 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023638
Meng Wangee084a02018-09-04 16:11:58 +080023639 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023640 use_ds1_or_ds2_controls,
23641 ARRAY_SIZE(use_ds1_or_ds2_controls));
23642
Meng Wangee084a02018-09-04 16:11:58 +080023643 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023644 device_pp_params_mixer_controls,
23645 ARRAY_SIZE(device_pp_params_mixer_controls));
23646
Meng Wangee084a02018-09-04 16:11:58 +080023647 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023648 msm_routing_be_dai_name_table_mixer_controls,
23649 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23650
Meng Wangee084a02018-09-04 16:11:58 +080023651 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023652 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023653 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023654 ARRAY_SIZE(adm_channel_config_controls));
23655
Meng Wangee084a02018-09-04 16:11:58 +080023656 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023657 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023658 snd_soc_add_component_controls(component,
23659 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023660 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080023661 snd_soc_add_component_controls(
23662 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023663 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23664
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023665 return 0;
23666}
23667
23668int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23669{
23670 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23671}
23672
23673void msm_routing_pcm_free(struct snd_pcm *pcm)
23674{
23675 msm_pcm_routing_hwdep_free(pcm);
23676}
23677
Meng Wangee084a02018-09-04 16:11:58 +080023678static struct snd_soc_component_driver msm_soc_routing_component = {
23679 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023680 .ops = &msm_routing_pcm_ops,
23681 .probe = msm_routing_probe,
23682 .pcm_new = msm_routing_pcm_new,
23683 .pcm_free = msm_routing_pcm_free,
23684};
23685
23686static int msm_routing_pcm_probe(struct platform_device *pdev)
23687{
23688
23689 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080023690 return snd_soc_register_component(&pdev->dev,
23691 &msm_soc_routing_component,
23692 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023693}
23694
23695static int msm_routing_pcm_remove(struct platform_device *pdev)
23696{
Meng Wangee084a02018-09-04 16:11:58 +080023697 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023698 return 0;
23699}
23700
23701static const struct of_device_id msm_pcm_routing_dt_match[] = {
23702 {.compatible = "qcom,msm-pcm-routing"},
23703 {}
23704};
23705MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
23706
23707static struct platform_driver msm_routing_pcm_driver = {
23708 .driver = {
23709 .name = "msm-pcm-routing",
23710 .owner = THIS_MODULE,
23711 .of_match_table = msm_pcm_routing_dt_match,
23712 },
23713 .probe = msm_routing_pcm_probe,
23714 .remove = msm_routing_pcm_remove,
23715};
23716
23717int msm_routing_check_backend_enabled(int fedai_id)
23718{
23719 int i;
23720
23721 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23722 /* bad ID assigned in machine driver */
23723 pr_err("%s: bad MM ID\n", __func__);
23724 return 0;
23725 }
23726 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23727 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23728 return msm_bedais[i].active;
23729 }
23730 return 0;
23731}
23732
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023733static int get_cal_type_index(int32_t cal_type)
23734{
23735 int ret = -EINVAL;
23736
23737 switch (cal_type) {
23738 case ADM_TOPOLOGY_CAL_TYPE:
23739 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23740 break;
23741 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23742 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23743 break;
23744 default:
23745 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23746 }
23747 return ret;
23748}
23749
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023750static int msm_routing_set_cal(int32_t cal_type,
23751 size_t data_size, void *data)
23752{
23753 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023754 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023755 pr_debug("%s\n", __func__);
23756
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023757 cal_index = get_cal_type_index(cal_type);
23758 if (cal_index < 0) {
23759 pr_err("%s: Could not get cal index %d\n",
23760 __func__, cal_index);
23761 ret = -EINVAL;
23762 goto done;
23763 }
23764
23765 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023766 if (ret < 0) {
23767 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23768 __func__, ret, cal_type);
23769 ret = -EINVAL;
23770 goto done;
23771 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023772 /* Pre-load if it is ADM topology */
23773 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23774 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23775 msm_routing_load_topology(data_size, data);
23776 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023777done:
23778 return ret;
23779}
23780
23781static void msm_routing_delete_cal_data(void)
23782{
23783 pr_debug("%s\n", __func__);
23784
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023785 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023786}
23787
23788static int msm_routing_init_cal_data(void)
23789{
23790 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023791 struct cal_type_info cal_type_info[] = {
23792 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023793 {NULL, NULL, NULL,
23794 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023795 {NULL, NULL, cal_utils_match_buf_num} },
23796
23797 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23798 {NULL, NULL, NULL,
23799 msm_routing_set_cal, NULL, NULL} },
23800 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023801 };
23802 pr_debug("%s\n", __func__);
23803
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023804 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23805 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023806 if (ret < 0) {
23807 pr_err("%s: could not create cal type!\n",
23808 __func__);
23809 ret = -EINVAL;
23810 goto err;
23811 }
23812
23813 return ret;
23814err:
23815 msm_routing_delete_cal_data();
23816 return ret;
23817}
23818
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023819int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023820{
23821 mutex_init(&routing_lock);
23822 if (msm_routing_init_cal_data())
23823 pr_err("%s: could not init cal data!\n", __func__);
23824
23825 afe_set_routing_callback(
23826 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23827
23828 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23829 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23830
23831 return platform_driver_register(&msm_routing_pcm_driver);
23832}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023833
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023834void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023835{
23836 msm_routing_delete_cal_data();
23837 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23838 mutex_destroy(&routing_lock);
23839 platform_driver_unregister(&msm_routing_pcm_driver);
23840}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023841
23842MODULE_DESCRIPTION("MSM routing platform driver");
23843MODULE_LICENSE("GPL v2");